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 @Override
82 protected void merge( Metadata recessive )
83 {
84 metadata.getVersioning().updateTimestamp();
85 }
86
87 public String getGroupId()
88 {
89 return artifact.getGroupId();
90 }
91
92 public String getArtifactId()
93 {
94 return artifact.getArtifactId();
95 }
96
97 public String getVersion()
98 {
99 return artifact.getBaseVersion();
100 }
101
102 public Nature getNature()
103 {
104 return Nature.SNAPSHOT;
105 }
106
107 }