]> source.dussan.org Git - archiva.git/blob
6d408726d0245e8cf595633edcae14c6e36f4eab
[archiva.git] /
1 package org.apache.archiva.metadata.model;
2
3 /*
4  * Licensed to the Apache Software Foundation (ASF) under one
5  * or more contributor license agreements.  See the NOTICE file
6  * distributed with this work for additional information
7  * regarding copyright ownership.  The ASF licenses this file
8  * to you under the Apache License, Version 2.0 (the
9  * "License"); you may not use this file except in compliance
10  * with the License.  You may obtain a copy of the License at
11  *
12  *   http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing,
15  * software distributed under the License is distributed on an
16  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17  * KIND, either express or implied.  See the License for the
18  * specific language governing permissions and limitations
19  * under the License.
20  */
21
22 import java.util.Date;
23
24 /**
25  * Metadata stored in the content repository for a particular artifact. Information that is shared between different
26  * artifacts of a given project version can be found in the
27  * {@link org.apache.archiva.metadata.model.ProjectVersionMetadata} class. The metadata is faceted to store information
28  * about particular types of artifacts, for example Maven 2.x artifact specific information.
29  * For more information, see the
30  * <a href="{@docRoot}/../metadata-content-model.html" target="_top">Metadata Content Model</a>.
31  */
32 public class ArtifactMetadata
33     extends FacetedMetadata
34 {
35     /**
36      * The artifact ID uniquely identifies an artifact within a given namespace, project and project version. For
37      * example, <tt>archiva-1.4-20100201.345612-2.jar</tt>
38      */
39     private String id;
40
41     /**
42      * The repository that the artifact is stored in within the content repository.
43      */
44     private String repositoryId;
45
46     /**
47      * The namespace of the project within the repository.
48      *
49      * @see org.apache.archiva.metadata.model.ProjectMetadata#namespace
50      */
51     private String namespace;
52
53     /**
54      * The identifier of the project within the repository and namespace.
55      *
56      * @see org.apache.archiva.metadata.model.ProjectMetadata#id
57      */
58     private String project;
59
60     /**
61      * The version of the project. This may be more generalised than @{link #version}.
62      *
63      * @see org.apache.archiva.metadata.model.ProjectVersionMetadata#id
64      */
65     private String projectVersion;
66
67     /**
68      * The artifact version, if different from the project version. Note that the metadata does not do any calculation
69      * of this based on the project version - the calling code must be sure to set and check it appropriately if
70      * <tt>null</tt>.
71      */
72     private String version;
73
74     /**
75      * The last modified date of the artifact file, if known.
76      */
77     private Date fileLastModified;
78
79     /**
80      * The file size of the artifact, if known.
81      */
82     private long size;
83
84     /**
85      * The MD5 checksum of the artifact, if calculated.
86      */
87     private String md5;
88
89     /**
90      * The SHA-1 checksum of the artifact, if calculated.
91      */
92     private String sha1;
93
94     /**
95      * When the artifact was found in the repository storage and added to the metadata content repository.
96      */
97     private Date whenGathered;
98
99     public String getId()
100     {
101         return id;
102     }
103
104     public void setId( String id )
105     {
106         this.id = id;
107     }
108
109     public long getSize()
110     {
111         return size;
112     }
113
114     public void setSize( long size )
115     {
116         this.size = size;
117     }
118
119     public String getVersion()
120     {
121         return version;
122     }
123
124     public void setVersion( String version )
125     {
126         this.version = version;
127     }
128
129     public String getProjectVersion()
130     {
131         return projectVersion;
132     }
133
134     public void setProjectVersion( String projectVersion )
135     {
136         this.projectVersion = projectVersion;
137     }
138
139     public void setFileLastModified( long fileLastModified )
140     {
141         this.fileLastModified = new Date( fileLastModified );
142     }
143
144     public void setWhenGathered( Date whenGathered )
145     {
146         this.whenGathered = whenGathered;
147     }
148
149     public void setMd5( String md5 )
150     {
151         this.md5 = md5;
152     }
153
154     public void setSha1( String sha1 )
155     {
156         this.sha1 = sha1;
157     }
158
159     public Date getWhenGathered()
160     {
161         return whenGathered;
162     }
163
164     public String getMd5()
165     {
166         return md5;
167     }
168
169     public String getSha1()
170     {
171         return sha1;
172     }
173
174     public Date getFileLastModified()
175     {
176
177         return fileLastModified;
178     }
179
180     public String getNamespace()
181     {
182         return namespace;
183     }
184
185     public void setNamespace( String namespace )
186     {
187         this.namespace = namespace;
188     }
189
190     public void setProject( String project )
191     {
192         this.project = project;
193     }
194
195     public String getProject()
196     {
197         return project;
198     }
199
200     public String getRepositoryId()
201     {
202         return repositoryId;
203     }
204
205     public void setRepositoryId( String repositoryId )
206     {
207         this.repositoryId = repositoryId;
208     }
209
210     @Override
211     public boolean equals( Object o )
212     {
213         if ( this == o )
214         {
215             return true;
216         }
217         if ( o == null || getClass() != o.getClass() )
218         {
219             return false;
220         }
221
222         ArtifactMetadata that = (ArtifactMetadata) o;
223
224         if ( size != that.size )
225         {
226             return false;
227         }
228         if ( fileLastModified != null
229             ? !fileLastModified.equals( that.fileLastModified )
230             : that.fileLastModified != null )
231         {
232             return false;
233         }
234         if ( !id.equals( that.id ) )
235         {
236             return false;
237         }
238         if ( md5 != null ? !md5.equals( that.md5 ) : that.md5 != null )
239         {
240             return false;
241         }
242         if ( namespace != null ? !namespace.equals( that.namespace ) : that.namespace != null )
243         {
244             return false;
245         }
246         if ( project != null ? !project.equals( that.project ) : that.project != null )
247         {
248             return false;
249         }
250         if ( projectVersion != null ? !projectVersion.equals( that.projectVersion ) : that.projectVersion != null )
251         {
252             return false;
253         }
254         if ( !repositoryId.equals( that.repositoryId ) )
255         {
256             return false;
257         }
258         if ( sha1 != null ? !sha1.equals( that.sha1 ) : that.sha1 != null )
259         {
260             return false;
261         }
262         if ( version != null ? !version.equals( that.version ) : that.version != null )
263         {
264             return false;
265         }
266         if ( whenGathered != null ? !whenGathered.equals( that.whenGathered ) : that.whenGathered != null )
267         {
268             return false;
269         }
270
271         return true;
272     }
273
274     @Override
275     public String toString()
276     {
277         return "ArtifactMetadata{" + "id='" + id + '\'' + ", size=" + size + ", version='" + version + '\'' +
278             ", fileLastModified=" + fileLastModified + ", whenGathered=" + whenGathered + ", md5='" + md5 + '\'' +
279             ", sha1='" + sha1 + '\'' + ", namespace='" + namespace + '\'' + ", project='" + project + '\'' +
280             ", projectVersion='" + projectVersion + '\'' + ", repositoryId='" + repositoryId + '\'' + '}';
281     }
282 }