1 /*
2 * $Id$
3 */
4
5 package org.apache.maven.artifact.repository.metadata;
6
7 //---------------------------------/
8 //- Imported classes and packages -/
9 //---------------------------------/
10
11 import java.util.Date;
12
13 /**
14 * Versioning information for an artifact.
15 *
16 * @version $Revision$ $Date$
17 */
18 public class Versioning implements java.io.Serializable {
19
20
21 //--------------------------/
22 //- Class/Member Variables -/
23 //--------------------------/
24
25 /**
26 * What the latest version in the directory is, including
27 * snapshots.
28 */
29 private String latest;
30
31 /**
32 * What the latest version in the directory is, of the releases.
33 */
34 private String release;
35
36 /**
37 * The current snapshot data in use for this version.
38 */
39 private Snapshot snapshot;
40
41 /**
42 * Field versions.
43 */
44 private java.util.List versions;
45
46 /**
47 * When the metadata was last updated.
48 */
49 private String lastUpdated;
50
51
52 //-----------/
53 //- Methods -/
54 //-----------/
55
56 /**
57 * Method addVersion.
58 *
59 * @param string
60 */
61 public void addVersion( String string )
62 {
63 if ( !(string instanceof String) )
64 {
65 throw new ClassCastException( "Versioning.addVersions(string) parameter must be instanceof " + String.class.getName() );
66 }
67 getVersions().add( string );
68 } //-- void addVersion( String )
69
70 /**
71 * Get when the metadata was last updated.
72 *
73 * @return String
74 */
75 public String getLastUpdated()
76 {
77 return this.lastUpdated;
78 } //-- String getLastUpdated()
79
80 /**
81 * Get what the latest version in the directory is, including
82 * snapshots.
83 *
84 * @return String
85 */
86 public String getLatest()
87 {
88 return this.latest;
89 } //-- String getLatest()
90
91 /**
92 * Get what the latest version in the directory is, of the
93 * releases.
94 *
95 * @return String
96 */
97 public String getRelease()
98 {
99 return this.release;
100 } //-- String getRelease()
101
102 /**
103 * Get the current snapshot data in use for this version.
104 *
105 * @return Snapshot
106 */
107 public Snapshot getSnapshot()
108 {
109 return this.snapshot;
110 } //-- Snapshot getSnapshot()
111
112 /**
113 * Method getVersions.
114 *
115 * @return java.util.List
116 */
117 public java.util.List getVersions()
118 {
119 if ( this.versions == null )
120 {
121 this.versions = new java.util.ArrayList();
122 }
123
124 return this.versions;
125 } //-- java.util.List getVersions()
126
127 /**
128 * Method removeVersion.
129 *
130 * @param string
131 */
132 public void removeVersion( String string )
133 {
134 if ( !(string instanceof String) )
135 {
136 throw new ClassCastException( "Versioning.removeVersions(string) parameter must be instanceof " + String.class.getName() );
137 }
138 getVersions().remove( string );
139 } //-- void removeVersion( String )
140
141 /**
142 * Set when the metadata was last updated.
143 *
144 * @param lastUpdated
145 */
146 public void setLastUpdated( String lastUpdated )
147 {
148 this.lastUpdated = lastUpdated;
149 } //-- void setLastUpdated( String )
150
151 /**
152 * Set what the latest version in the directory is, including
153 * snapshots.
154 *
155 * @param latest
156 */
157 public void setLatest( String latest )
158 {
159 this.latest = latest;
160 } //-- void setLatest( String )
161
162 /**
163 * Set what the latest version in the directory is, of the
164 * releases.
165 *
166 * @param release
167 */
168 public void setRelease( String release )
169 {
170 this.release = release;
171 } //-- void setRelease( String )
172
173 /**
174 * Set the current snapshot data in use for this version.
175 *
176 * @param snapshot
177 */
178 public void setSnapshot( Snapshot snapshot )
179 {
180 this.snapshot = snapshot;
181 } //-- void setSnapshot( Snapshot )
182
183 /**
184 * Set versions available for the artifact.
185 *
186 * @param versions
187 */
188 public void setVersions( java.util.List versions )
189 {
190 this.versions = versions;
191 } //-- void setVersions( java.util.List )
192
193
194 public void updateTimestamp()
195 {
196 setLastUpdatedTimestamp( new java.util.Date() );
197 }
198
199 public void setLastUpdatedTimestamp( java.util.Date date )
200 {
201 java.util.TimeZone timezone = java.util.TimeZone.getTimeZone( "UTC" );
202 java.text.DateFormat fmt = new java.text.SimpleDateFormat( "yyyyMMddHHmmss" );
203 fmt.setTimeZone( timezone );
204 setLastUpdated( fmt.format( date ) );
205 }
206
207 private String modelEncoding = "UTF-8";
208
209 /**
210 * Set an encoding used for reading/writing the model.
211 *
212 * @param modelEncoding the encoding used when reading/writing the model.
213 */
214 public void setModelEncoding( String modelEncoding )
215 {
216 this.modelEncoding = modelEncoding;
217 }
218
219 /**
220 * @return the current encoding used when reading/writing this model.
221 */
222 public String getModelEncoding()
223 {
224 return modelEncoding;
225 }
226 }