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.Snapshot;
26 import org.apache.maven.artifact.repository.metadata.Versioning;
27 import org.sonatype.aether.artifact.Artifact;
28
29
30
31
32 final class LocalSnapshotMetadata
33 extends MavenMetadata
34 {
35
36 private final Artifact artifact;
37
38 public LocalSnapshotMetadata( Artifact artifact )
39 {
40 super( createMetadata( artifact ), null );
41 this.artifact = artifact;
42 }
43
44 public LocalSnapshotMetadata( 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 Snapshot snapshot = new Snapshot();
53 snapshot.setLocalCopy( true );
54 Versioning versioning = new Versioning();
55 versioning.setSnapshot( snapshot );
56
57 Metadata metadata = new Metadata();
58 metadata.setVersioning( versioning );
59 metadata.setGroupId( artifact.getGroupId() );
60 metadata.setArtifactId( artifact.getArtifactId() );
61 metadata.setVersion( artifact.getBaseVersion() );
62
63 return metadata;
64 }
65
66 public MavenMetadata setFile( File file )
67 {
68 return new LocalSnapshotMetadata( artifact, file );
69 }
70
71 public Object getKey()
72 {
73 return getGroupId() + ':' + getArtifactId() + ':' + getVersion();
74 }
75
76 public static Object getKey( Artifact artifact )
77 {
78 return artifact.getGroupId() + ':' + artifact.getArtifactId() + ':' + artifact.getBaseVersion();
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 artifact.getBaseVersion();
94 }
95
96 public Nature getNature()
97 {
98 return Nature.SNAPSHOT;
99 }
100
101 }