]> source.dussan.org Git - archiva.git/blob
1966bdb993f701e884ec79dfb3b07a27ab78c620
[archiva.git] /
1 package org.apache.maven.archiva.indexer.record;
2
3 /*
4  * Copyright 2005-2006 The Apache Software Foundation.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *      http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18
19 import java.util.ArrayList;
20 import java.util.Collections;
21 import java.util.List;
22
23 /**
24  * The a record with the fields in the standard index.
25  *
26  * @author <a href="mailto:brett@apache.org">Brett Porter</a>
27  */
28 public class StandardArtifactIndexRecord
29     extends MinimalArtifactIndexRecord
30 {
31     /**
32      * The SHA-1 checksum of the artifact file.
33      */
34     private String sha1Checksum;
35
36     /**
37      * The artifact's group.
38      */
39     private String groupId;
40
41     /**
42      * The artifact's identifier within the group.
43      */
44     private String artifactId;
45
46     /**
47      * The artifact's version.
48      */
49     private String version;
50
51     /**
52      * The classifier, if there is one.
53      */
54     private String classifier;
55
56     /**
57      * The artifact type (from the file).
58      */
59     private String type;
60
61     /**
62      * A list of files (separated by '\n') in the artifact if it is an archive.
63      */
64     private List files;
65
66     /**
67      * The identifier of the repository that the artifact came from.
68      */
69     private String repository;
70
71     /**
72      * The packaging specified in the POM for this artifact.
73      */
74     private String packaging;
75
76     /**
77      * The plugin prefix specified in the metadata if the artifact is a plugin.
78      */
79     private String pluginPrefix;
80
81     /**
82      * The year the project was started.
83      */
84     private String inceptionYear;
85
86     /**
87      * The description of the project.
88      */
89     private String projectDescription;
90
91     /**
92      * The name of the project.
93      */
94     private String projectName;
95
96     /**
97      * The base version (before the snapshot is determined).
98      */
99     private String baseVersion;
100
101     /**
102      * A list of dependencies for the artifact, each a string of the form <code>groupId:artifactId:version</code>.
103      */
104     private List dependencies;
105
106     /**
107      * A list of developers in the POM, each a string of the form <code>id:name:email</code>.
108      */
109     private List developers;
110
111     public void setSha1Checksum( String sha1Checksum )
112     {
113         this.sha1Checksum = sha1Checksum;
114     }
115
116     public void setGroupId( String groupId )
117     {
118         this.groupId = groupId;
119     }
120
121     public void setArtifactId( String artifactId )
122     {
123         this.artifactId = artifactId;
124     }
125
126     public void setVersion( String version )
127     {
128         this.version = version;
129     }
130
131     public void setClassifier( String classifier )
132     {
133         this.classifier = classifier;
134     }
135
136     public void setType( String type )
137     {
138         this.type = type;
139     }
140
141     public void setFiles( List files )
142     {
143         this.files = files;
144     }
145
146     public void setRepository( String repository )
147     {
148         this.repository = repository;
149     }
150
151     /**
152      * @noinspection RedundantIfStatement
153      */
154     public boolean equals( Object obj )
155     {
156         if ( this == obj )
157         {
158             return true;
159         }
160         if ( obj == null || getClass() != obj.getClass() )
161         {
162             return false;
163         }
164         if ( !super.equals( obj ) )
165         {
166             return false;
167         }
168
169         StandardArtifactIndexRecord that = (StandardArtifactIndexRecord) obj;
170
171         if ( !artifactId.equals( that.artifactId ) )
172         {
173             return false;
174         }
175         if ( classifier != null ? !classifier.equals( that.classifier ) : that.classifier != null )
176         {
177             return false;
178         }
179         
180         if ( dependencies != null && that.dependencies != null )
181         {
182             List sorted = new ArrayList( dependencies );
183             Collections.sort( sorted );
184             
185             List sortedOther = new ArrayList( that.dependencies );
186             Collections.sort( sortedOther );
187             
188             if ( !sorted.equals( sortedOther ) )
189             {
190                 return false;
191             }
192         }
193         else if ( !( dependencies == null && that.dependencies == null ) )
194         {
195             return false;
196         }
197         
198         if ( developers != null ? !developers.equals( that.developers ) : that.developers != null )
199         {
200             return false;
201         }
202         if ( files != null ? !files.equals( that.files ) : that.files != null )
203         {
204             return false;
205         }
206         if ( !groupId.equals( that.groupId ) )
207         {
208             return false;
209         }
210         if ( repository != null ? !repository.equals( that.repository ) : that.repository != null )
211         {
212             return false;
213         }
214         if ( sha1Checksum != null ? !sha1Checksum.equals( that.sha1Checksum ) : that.sha1Checksum != null )
215         {
216             return false;
217         }
218         if ( type != null ? !type.equals( that.type ) : that.type != null )
219         {
220             return false;
221         }
222         if ( !version.equals( that.version ) )
223         {
224             return false;
225         }
226         if ( !baseVersion.equals( that.baseVersion ) )
227         {
228             return false;
229         }
230         if ( packaging != null ? !packaging.equals( that.packaging ) : that.packaging != null )
231         {
232             return false;
233         }
234         if ( pluginPrefix != null ? !pluginPrefix.equals( that.pluginPrefix ) : that.pluginPrefix != null )
235         {
236             return false;
237         }
238         if ( projectName != null ? !projectName.equals( that.projectName ) : that.projectName != null )
239         {
240             return false;
241         }
242         if ( inceptionYear != null ? !inceptionYear.equals( that.inceptionYear ) : that.inceptionYear != null )
243         {
244             return false;
245         }
246         if ( projectDescription != null ? !projectDescription.equals( that.projectDescription )
247             : that.projectDescription != null )
248         {
249             return false;
250         }
251
252         return true;
253     }
254
255     public int hashCode()
256     {
257         int result = super.hashCode();
258         result = 31 * result + ( sha1Checksum != null ? sha1Checksum.hashCode() : 0 );
259         result = 31 * result + groupId.hashCode();
260         result = 31 * result + artifactId.hashCode();
261         result = 31 * result + version.hashCode();
262         result = 31 * result + baseVersion.hashCode();
263         result = 31 * result + ( classifier != null ? classifier.hashCode() : 0 );
264         result = 31 * result + ( type != null ? type.hashCode() : 0 );
265         result = 31 * result + ( files != null ? files.hashCode() : 0 );
266         result = 31 * result + ( developers != null ? developers.hashCode() : 0 );
267         
268         if ( dependencies != null )
269         {
270             List sorted = new ArrayList( dependencies );
271             Collections.sort( sorted );
272             
273             result = 31 * result + sorted.hashCode();
274         }
275         
276         result = 31 * result + ( repository != null ? repository.hashCode() : 0 );
277         result = 31 * result + ( packaging != null ? packaging.hashCode() : 0 );
278         result = 31 * result + ( pluginPrefix != null ? pluginPrefix.hashCode() : 0 );
279         result = 31 * result + ( inceptionYear != null ? inceptionYear.hashCode() : 0 );
280         result = 31 * result + ( projectName != null ? projectName.hashCode() : 0 );
281         result = 31 * result + ( projectDescription != null ? projectDescription.hashCode() : 0 );
282         return result;
283     }
284
285     public String getSha1Checksum()
286     {
287         return sha1Checksum;
288     }
289
290     public String getGroupId()
291     {
292         return groupId;
293     }
294
295     public String getArtifactId()
296     {
297         return artifactId;
298     }
299
300     public String getVersion()
301     {
302         return version;
303     }
304
305     public String getClassifier()
306     {
307         return classifier;
308     }
309
310     public String getType()
311     {
312         return type;
313     }
314
315     public List getFiles()
316     {
317         return files;
318     }
319
320     public String getRepository()
321     {
322         return repository;
323     }
324
325     public String getPackaging()
326     {
327         return packaging;
328     }
329
330     public String getPluginPrefix()
331     {
332         return pluginPrefix;
333     }
334
335     public void setPackaging( String packaging )
336     {
337         this.packaging = packaging;
338     }
339
340     public void setPluginPrefix( String pluginPrefix )
341     {
342         this.pluginPrefix = pluginPrefix;
343     }
344
345     public void setInceptionYear( String inceptionYear )
346     {
347         this.inceptionYear = inceptionYear;
348     }
349
350     public void setProjectDescription( String description )
351     {
352         this.projectDescription = description;
353     }
354
355     public void setProjectName( String projectName )
356     {
357         this.projectName = projectName;
358     }
359
360     public String getInceptionYear()
361     {
362         return inceptionYear;
363     }
364
365     public String getProjectDescription()
366     {
367         return projectDescription;
368     }
369
370     public String getProjectName()
371     {
372         return projectName;
373     }
374
375     public void setBaseVersion( String baseVersion )
376     {
377         this.baseVersion = baseVersion;
378     }
379
380     public String getBaseVersion()
381     {
382         return baseVersion;
383     }
384
385     public void setDependencies( List dependencies )
386     {
387         this.dependencies = dependencies;
388     }
389
390     public void setDevelopers( List developers )
391     {
392         this.developers = developers;
393     }
394
395     public List getDevelopers()
396     {
397         return developers;
398     }
399
400     public List getDependencies()
401     {
402         return dependencies;
403     }
404
405     public String getPrimaryKey()
406     {
407         return groupId + ":" + artifactId + ":" + version + ( classifier != null ? ":" + classifier : "" );
408     }
409 }