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 import org.sonatype.aether.util.artifact.ArtifactProperties;
28
29
30
31
32 final class VersionsMetadata
33 extends MavenMetadata
34 {
35
36 private final Artifact artifact;
37
38 public VersionsMetadata( Artifact artifact )
39 {
40 super( createMetadata( artifact ), null );
41 this.artifact = artifact;
42 }
43
44 public VersionsMetadata( Artifact artifact, File file )
45 {
46 super( createMetadata( artifact ), file );
47 this.artifact = artifact;
48 }
49
50 private static Metadata createMetadata( Artifact artifact )
51 {
52 Versioning versioning = new Versioning();
53 versioning.addVersion( artifact.getBaseVersion() );
54 if ( !artifact.isSnapshot() )
55 {
56 versioning.setRelease( artifact.getBaseVersion() );
57 }
58 if ( "maven-plugin".equals( artifact.getProperty( ArtifactProperties.TYPE, "" ) ) )
59 {
60 versioning.setLatest( artifact.getBaseVersion() );
61 }
62
63 Metadata metadata = new Metadata();
64 metadata.setVersioning( versioning );
65 metadata.setGroupId( artifact.getGroupId() );
66 metadata.setArtifactId( artifact.getArtifactId() );
67
68 return metadata;
69 }
70
71 public Object getKey()
72 {
73 return getGroupId() + ':' + getArtifactId();
74 }
75
76 public static Object getKey( Artifact artifact )
77 {
78 return artifact.getGroupId() + ':' + artifact.getArtifactId();
79 }
80
81 public MavenMetadata setFile( File file )
82 {
83 return new VersionsMetadata( artifact, file );
84 }
85
86 public String getGroupId()
87 {
88 return artifact.getGroupId();
89 }
90
91 public String getArtifactId()
92 {
93 return artifact.getArtifactId();
94 }
95
96 public String getVersion()
97 {
98 return "";
99 }
100
101 public Nature getNature()
102 {
103 return artifact.isSnapshot() ? Nature.RELEASE_OR_SNAPSHOT : Nature.RELEASE;
104 }
105
106 }