This project has retired. For details please refer to its
Attic page.
ArchivaArtifact xref
1 package org.apache.archiva.model;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.commons.lang.StringUtils;
23 import org.apache.archiva.common.utils.VersionUtil;
24
25
26
27
28
29
30 public class ArchivaArtifact
31 {
32 private ArchivaArtifactModel model;
33
34 private ArchivaArtifactPlatformDetails platformDetails;
35
36 private String baseVersion;
37
38 private static final int PRIME = 31;
39
40 public ArchivaArtifact( String groupId, String artifactId, String version,
41 String classifier, String type, String repositoryId )
42 {
43 if ( empty( groupId ) )
44 {
45 throw new IllegalArgumentException( "Unable to create ArchivaArtifact with empty groupId ["
46 + Keys.toKey( groupId, artifactId, version, classifier, type ) + "]" );
47 }
48
49 if ( empty( artifactId ) )
50 {
51 throw new IllegalArgumentException( "Unable to create ArchivaArtifact with empty artifactId ["
52 + Keys.toKey( groupId, artifactId, version, classifier, type ) + "]" );
53 }
54
55 if ( empty( version ) )
56 {
57 throw new IllegalArgumentException( "Unable to create ArchivaArtifact with empty version ["
58 + Keys.toKey( groupId, artifactId, version, classifier, type ) + "]" );
59 }
60
61 if ( empty( type ) )
62 {
63 throw new IllegalArgumentException( "Unable to create ArchivaArtifact with empty type ["
64 + Keys.toKey( groupId, artifactId, version, classifier, type ) + "]" );
65 }
66
67 if ( empty( repositoryId ) )
68 {
69 throw new IllegalArgumentException( "Unable to create ArchivaArtifact with empty repositoryId ["
70 + Keys.toKey( groupId, artifactId, version, classifier, type ) + "]" );
71 }
72
73 model = new ArchivaArtifactModel();
74
75 model.setGroupId( groupId );
76 model.setArtifactId( artifactId );
77 model.setVersion( version );
78 model.setClassifier( StringUtils.defaultString( classifier ) );
79 model.setType( type );
80 model.setSnapshot( VersionUtil.isSnapshot( version ) );
81 model.setRepositoryId(repositoryId);
82
83 this.baseVersion = VersionUtil.getBaseVersion( version );
84 }
85
86 public ArchivaArtifact( ArchivaArtifactModel artifactModel )
87 {
88 this.model = artifactModel;
89 model.setSnapshot( VersionUtil.isSnapshot( model.getVersion() ) );
90 this.baseVersion = VersionUtil.getBaseVersion( model.getVersion() );
91 }
92
93 public ArchivaArtifact( ArtifactReference ref, String repositoryId )
94 {
95 this( ref.getGroupId(), ref.getArtifactId(), ref.getVersion(), ref.getClassifier(), ref.getType(), repositoryId );
96 }
97
98 public ArchivaArtifactModel getModel()
99 {
100 return model;
101 }
102
103 public String getGroupId()
104 {
105 return model.getGroupId();
106 }
107
108 public String getArtifactId()
109 {
110 return model.getArtifactId();
111 }
112
113 public String getVersion()
114 {
115 return model.getVersion();
116 }
117
118 public String getBaseVersion()
119 {
120 return baseVersion;
121 }
122
123 public boolean isSnapshot()
124 {
125 return model.isSnapshot();
126 }
127
128 public String getClassifier()
129 {
130 return model.getClassifier();
131 }
132
133 public String getType()
134 {
135 return model.getType();
136 }
137
138 public boolean hasClassifier()
139 {
140 return StringUtils.isNotEmpty( model.getClassifier() );
141 }
142
143 public String getRepositoryId()
144 {
145 return model.getRepositoryId();
146 }
147
148 @Override
149 public int hashCode()
150 {
151
152 int result = 1;
153 if ( model != null )
154 {
155 result = PRIME * result + ( ( model.getGroupId() == null ) ? 0 : model.getGroupId().hashCode() );
156 result = PRIME * result + ( ( model.getArtifactId() == null ) ? 0 : model.getArtifactId().hashCode() );
157 result = PRIME * result + ( ( model.getVersion() == null ) ? 0 : model.getVersion().hashCode() );
158 result = PRIME * result + ( ( model.getClassifier() == null ) ? 0 : model.getClassifier().hashCode() );
159 result = PRIME * result + ( ( model.getType() == null ) ? 0 : model.getType().hashCode() );
160 }
161 return result;
162 }
163
164 @Override
165 public boolean equals( Object obj )
166 {
167 if ( this == obj )
168 {
169 return true;
170 }
171
172 if ( obj == null )
173 {
174 return false;
175 }
176
177 if ( getClass() != obj.getClass() )
178 {
179 return false;
180 }
181
182 final ArchivaArtifact other = (ArchivaArtifact) obj;
183
184 if ( model == null )
185 {
186 if ( other.model != null )
187 {
188 return false;
189 }
190 }
191 if ( !model.equals( other.model ) )
192 {
193 return false;
194 }
195
196 return true;
197 }
198
199 @Override
200 public String toString()
201 {
202 StringBuilder sb = new StringBuilder();
203 if ( model.getGroupId() != null )
204 {
205 sb.append( model.getGroupId() );
206 sb.append( ":" );
207 }
208 appendArtifactTypeClassifierString( sb );
209 sb.append( ":" );
210 if ( model.getVersion() != null )
211 {
212 sb.append( model.getVersion() );
213 }
214
215 return sb.toString();
216 }
217
218 private void appendArtifactTypeClassifierString( StringBuilder sb )
219 {
220 sb.append( model.getArtifactId() );
221 sb.append( ":" );
222 sb.append( getType() );
223 if ( hasClassifier() )
224 {
225 sb.append( ":" );
226 sb.append( getClassifier() );
227 }
228 }
229
230 private boolean empty( String value )
231 {
232 return ( value == null ) || ( value.trim().length() < 1 );
233 }
234
235 public ArchivaArtifactPlatformDetails getPlatformDetails()
236 {
237 return platformDetails;
238 }
239
240 public void setPlatformDetails( ArchivaArtifactPlatformDetails platformDetails )
241 {
242 this.platformDetails = platformDetails;
243 }
244 }