1 package org.apache.maven.plugin.testing.stubs;
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.io.File;
23 import java.util.Collection;
24 import java.util.List;
25
26 import org.apache.maven.artifact.Artifact;
27 import org.apache.maven.artifact.handler.ArtifactHandler;
28 import org.apache.maven.artifact.metadata.ArtifactMetadata;
29 import org.apache.maven.artifact.repository.ArtifactRepository;
30 import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
31 import org.apache.maven.artifact.versioning.ArtifactVersion;
32 import org.apache.maven.artifact.versioning.OverConstrainedVersionException;
33 import org.apache.maven.artifact.versioning.VersionRange;
34
35 /**
36 * Stub class for {@link Artifact} testing.
37 *
38 * @author jesse
39 * @version $Id$
40 */
41 public class ArtifactStub
42 implements Artifact
43 {
44 private String groupId;
45
46 private String artifactId;
47
48 private String version;
49
50 private String scope;
51
52 private String type;
53
54 private String classifier;
55
56 private File file;
57
58 private ArtifactRepository artifactRepository;
59
60 /**
61 * By default, return <code>0</code>
62 *
63 * @see java.lang.Comparable#compareTo(java.lang.Object)
64 */
65 public int compareTo( Artifact artifact )
66 {
67 return 0;
68 }
69
70 /** {@inheritDoc} */
71 public String getGroupId()
72 {
73 return groupId;
74 }
75
76 /** {@inheritDoc} */
77 public String getArtifactId()
78 {
79 return artifactId;
80 }
81
82 /** {@inheritDoc} */
83 public String getVersion()
84 {
85 return version;
86 }
87
88 /** {@inheritDoc} */
89 public void setVersion( String version )
90 {
91 this.version = version;
92 }
93
94 /** {@inheritDoc} */
95 public String getScope()
96 {
97 return scope;
98 }
99
100 /** {@inheritDoc} */
101 public String getType()
102 {
103 return type;
104 }
105
106 /**
107 * Set a new type
108 *
109 * @param type
110 */
111 public void setType( String type )
112 {
113 this.type = type;
114 }
115
116 /** {@inheritDoc} */
117 public String getClassifier()
118 {
119 return classifier;
120 }
121
122 /** {@inheritDoc} */
123 public boolean hasClassifier()
124 {
125 return classifier != null;
126 }
127
128 /** {@inheritDoc} */
129 public File getFile()
130 {
131 return file;
132 }
133
134 /** {@inheritDoc} */
135 public void setFile( File file )
136 {
137 this.file = file;
138 }
139
140 /**
141 * @return <code>null</code>.
142 * @see org.apache.maven.artifact.Artifact#getBaseVersion()
143 */
144 public String getBaseVersion()
145 {
146 return null;
147 }
148
149 /**
150 * By default, do nothing.
151 *
152 * @see org.apache.maven.artifact.Artifact#setBaseVersion(java.lang.String)
153 */
154 public void setBaseVersion( String string )
155 {
156 // nop
157 }
158
159 /**
160 * @return <code>null</code>.
161 * @see org.apache.maven.artifact.Artifact#getId()
162 */
163 public String getId()
164 {
165 return null;
166 }
167
168 /**
169 * @return <code>groupId:artifactId:type:classifier</code>.
170 * @see org.apache.maven.artifact.Artifact#getDependencyConflictId()
171 */
172 public String getDependencyConflictId()
173 {
174 StringBuffer buffer = new StringBuffer();
175
176 buffer.append( getGroupId() );
177 buffer.append( ":" ).append( getArtifactId() );
178 buffer.append( ":" ).append( getType() );
179 buffer.append( ":" ).append( getClassifier() );
180
181 return buffer.toString();
182 }
183
184 /**
185 * By default, do nothing.
186 *
187 * @see org.apache.maven.artifact.Artifact#addMetadata(org.apache.maven.artifact.metadata.ArtifactMetadata)
188 */
189 public void addMetadata( ArtifactMetadata artifactMetadata )
190 {
191 // nop
192 }
193
194 /**
195 * @return <code>null</code>.
196 * @see org.apache.maven.artifact.Artifact#getMetadataList()
197 */
198 public Collection<ArtifactMetadata> getMetadataList()
199 {
200 return null;
201 }
202
203 /** {@inheritDoc} */
204 public void setRepository( ArtifactRepository artifactRepository )
205 {
206 this.artifactRepository = artifactRepository;
207 }
208
209 /** {@inheritDoc} */
210 public ArtifactRepository getRepository()
211 {
212 return artifactRepository;
213 }
214
215 /**
216 * By default, do nothing.
217 *
218 * @see org.apache.maven.artifact.Artifact#updateVersion(java.lang.String, org.apache.maven.artifact.repository.ArtifactRepository)
219 */
220 public void updateVersion( String string, ArtifactRepository artifactRepository )
221 {
222 // nop
223 }
224
225 /**
226 * @return <code>null</code>.
227 * @see org.apache.maven.artifact.Artifact#getDownloadUrl()
228 */
229 public String getDownloadUrl()
230 {
231 return null;
232 }
233
234 /**
235 * By default, do nothing.
236 *
237 * @see org.apache.maven.artifact.Artifact#setDownloadUrl(java.lang.String)
238 */
239 public void setDownloadUrl( String string )
240 {
241 // nop
242 }
243
244 /**
245 * @return <code>null</code>.
246 * @see org.apache.maven.artifact.Artifact#getDependencyFilter()
247 */
248 public ArtifactFilter getDependencyFilter()
249 {
250 return null;
251 }
252
253 /**
254 * By default, do nothing.
255 *
256 * @see org.apache.maven.artifact.Artifact#setDependencyFilter(org.apache.maven.artifact.resolver.filter.ArtifactFilter)
257 */
258 public void setDependencyFilter( ArtifactFilter artifactFilter )
259 {
260 // nop
261 }
262
263 /**
264 * @return <code>null</code>.
265 * @see org.apache.maven.artifact.Artifact#getArtifactHandler()
266 */
267 public ArtifactHandler getArtifactHandler()
268 {
269 return null;
270 }
271
272 /**
273 * @return <code>null</code>.
274 * @see org.apache.maven.artifact.Artifact#getDependencyTrail()
275 */
276 public List<String> getDependencyTrail()
277 {
278 return null;
279 }
280
281 /**
282 * By default, do nothing.
283 *
284 * @see org.apache.maven.artifact.Artifact#setDependencyTrail(java.util.List)
285 */
286 public void setDependencyTrail( List<String> list )
287 {
288 // nop
289 }
290
291 /** {@inheritDoc} */
292 public void setScope( String scope )
293 {
294 this.scope = scope;
295 }
296
297 /**
298 * @return <code>null</code>.
299 * @see org.apache.maven.artifact.Artifact#getVersionRange()
300 */
301 public VersionRange getVersionRange()
302 {
303 return null;
304 }
305
306 /**
307 * By default, do nothing.
308 *
309 * @see org.apache.maven.artifact.Artifact#setVersionRange(org.apache.maven.artifact.versioning.VersionRange)
310 */
311 public void setVersionRange( VersionRange versionRange )
312 {
313 // nop
314 }
315
316 /**
317 * By default, do nothing.
318 *
319 * @see org.apache.maven.artifact.Artifact#selectVersion(java.lang.String)
320 */
321 public void selectVersion( String string )
322 {
323 // nop
324 }
325
326 /** {@inheritDoc} */
327 public void setGroupId( String groupId )
328 {
329 this.groupId = groupId;
330 }
331
332 /** {@inheritDoc} */
333 public void setArtifactId( String artifactId )
334 {
335 this.artifactId = artifactId;
336 }
337
338 /**
339 * @return <code>false</code>.
340 * @see org.apache.maven.artifact.Artifact#isSnapshot()
341 */
342 public boolean isSnapshot()
343 {
344 return Artifact.VERSION_FILE_PATTERN.matcher( getVersion() ).matches()
345 || getVersion().endsWith( Artifact.SNAPSHOT_VERSION );
346 }
347
348 /**
349 * By default, do nothing.
350 *
351 * @see org.apache.maven.artifact.Artifact#setResolved(boolean)
352 */
353 public void setResolved( boolean b )
354 {
355 // nop
356 }
357
358 /**
359 * @return <code>false</code>.
360 * @see org.apache.maven.artifact.Artifact#isResolved()
361 */
362 public boolean isResolved()
363 {
364 return false;
365 }
366
367 /**
368 * By default, do nothing.
369 *
370 * @see org.apache.maven.artifact.Artifact#setResolvedVersion(java.lang.String)
371 */
372 public void setResolvedVersion( String string )
373 {
374 // nop
375 }
376
377 /**
378 * By default, do nothing.
379 *
380 * @see org.apache.maven.artifact.Artifact#setArtifactHandler(org.apache.maven.artifact.handler.ArtifactHandler)
381 */
382 public void setArtifactHandler( ArtifactHandler artifactHandler )
383 {
384 // nop
385 }
386
387 /**
388 * @return <code>false</code>.
389 * @see org.apache.maven.artifact.Artifact#isRelease()
390 */
391 public boolean isRelease()
392 {
393 return !isSnapshot();
394 }
395
396 /**
397 * By default, do nothing.
398 *
399 * @see org.apache.maven.artifact.Artifact#setRelease(boolean)
400 */
401 public void setRelease( boolean b )
402 {
403 // nop
404 }
405
406 /**
407 * @return <code>null</code>.
408 * @see org.apache.maven.artifact.Artifact#getAvailableVersions()
409 */
410 public List<ArtifactVersion> getAvailableVersions()
411 {
412 return null;
413 }
414
415 /**
416 * By default, do nothing.
417 *
418 * @see org.apache.maven.artifact.Artifact#setAvailableVersions(java.util.List)
419 */
420 public void setAvailableVersions( List<ArtifactVersion> list )
421 {
422 // nop
423 }
424
425 /**
426 * @return <code>false</code>.
427 * @see org.apache.maven.artifact.Artifact#isOptional()
428 */
429 public boolean isOptional()
430 {
431 return false;
432 }
433
434 /**
435 * By default, do nothing.
436 *
437 * @param b
438 */
439 public void setOptional( boolean b )
440 {
441 // nop
442 }
443
444 /**
445 * @return <code>null</code>.
446 * @see org.apache.maven.artifact.Artifact#getSelectedVersion()
447 */
448 public ArtifactVersion getSelectedVersion()
449 throws OverConstrainedVersionException
450 {
451 return null;
452 }
453
454 /**
455 * @return <code>false</code>.
456 * @see org.apache.maven.artifact.Artifact#isSelectedVersionKnown()
457 */
458 public boolean isSelectedVersionKnown()
459 throws OverConstrainedVersionException
460 {
461 return false;
462 }
463
464 /**
465 * @see java.lang.Object#toString()
466 */
467 public String toString()
468 {
469 StringBuffer sb = new StringBuffer();
470 if ( getGroupId() != null )
471 {
472 sb.append( getGroupId() );
473 sb.append( ":" );
474 }
475 appendArtifactTypeClassifierString( sb );
476 if ( version != null )
477 {
478 sb.append( ":" );
479 sb.append( getVersion() );
480 }
481 if ( scope != null )
482 {
483 sb.append( ":" );
484 sb.append( scope );
485 }
486 return sb.toString();
487 }
488
489 private void appendArtifactTypeClassifierString( StringBuffer sb )
490 {
491 sb.append( getArtifactId() );
492 sb.append( ":" );
493 sb.append( getType() );
494 if ( hasClassifier() )
495 {
496 sb.append( ":" );
497 sb.append( getClassifier() );
498 }
499 }
500
501 public boolean isFromAuthoritativeRepository()
502 {
503 return true;
504 }
505
506 public void setFromAuthoritativeRepository( boolean fromAuthoritativeRepository )
507 {
508 // nothing
509 }
510 }