1 package org.apache.maven.repository.internal;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.File;
23
24 import org.apache.maven.artifact.repository.metadata.Metadata;
25 import org.apache.maven.artifact.repository.metadata.Versioning;
26 import org.sonatype.aether.artifact.Artifact;
27
28
29
30
31 final class VersionsMetadata
32 extends MavenMetadata
33 {
34
35 private final Artifact artifact;
36
37 public VersionsMetadata( Artifact artifact )
38 {
39 super( createMetadata( artifact ), null );
40 this.artifact = artifact;
41 }
42
43 public VersionsMetadata( Artifact artifact, File file )
44 {
45 super( createMetadata( artifact ), file );
46 this.artifact = artifact;
47 }
48
49 private static Metadata createMetadata( Artifact artifact )
50 {
51 Versioning versioning = new Versioning();
52 versioning.addVersion( artifact.getBaseVersion() );
53 if ( !artifact.isSnapshot() )
54 {
55 versioning.setRelease( artifact.getVersion() );
56 }
57
58 Metadata metadata = new Metadata();
59 metadata.setVersioning( versioning );
60 metadata.setGroupId( artifact.getGroupId() );
61 metadata.setArtifactId( artifact.getArtifactId() );
62
63 return metadata;
64 }
65
66 public Object getKey()
67 {
68 return getGroupId() + ':' + getArtifactId();
69 }
70
71 public static Object getKey( Artifact artifact )
72 {
73 return artifact.getGroupId() + ':' + artifact.getArtifactId();
74 }
75
76 public MavenMetadata setFile( File file )
77 {
78 return new VersionsMetadata( artifact, file );
79 }
80
81 public String getGroupId()
82 {
83 return artifact.getGroupId();
84 }
85
86 public String getArtifactId()
87 {
88 return artifact.getArtifactId();
89 }
90
91 public String getVersion()
92 {
93 return "";
94 }
95
96 public Nature getNature()
97 {
98 return artifact.isSnapshot() ? Nature.RELEASE_OR_SNAPSHOT : Nature.RELEASE;
99 }
100
101 }