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