View Javadoc
1   package org.apache.maven.shared.transfer.artifact;
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 org.apache.maven.artifact.Artifact;
23  import org.apache.maven.model.Extension;
24  import org.apache.maven.model.Parent;
25  import org.apache.maven.model.Plugin;
26  import org.apache.maven.model.ReportPlugin;
27  
28  /**
29   * Utility class
30   * 
31   * @author Robert Scholte
32   */
33  public final class TransferUtils
34  {
35      private TransferUtils()
36      {
37      }
38  
39      /**
40       * @param artifact {@link Artifact}
41       * @return {@link ArtifactCoordinate}
42       */
43      public static ArtifactCoordinate toArtifactCoordinate( Artifact artifact )
44      {
45          DefaultArtifactCoordinate coordinate = new DefaultArtifactCoordinate();
46  
47          coordinate.setGroupId( artifact.getGroupId() );
48          coordinate.setArtifactId( artifact.getArtifactId() );
49          coordinate.setVersion( artifact.getVersion() );
50          coordinate.setExtension( artifact.getArtifactHandler().getExtension() );
51          coordinate.setClassifier( artifact.getClassifier() );
52  
53          return coordinate;
54      }
55  
56      /**
57       * Special case: an extension is always of type {@code jar}, so can be transformed to an ArtifactCoordinate.
58       * 
59       * @param extension {@link Extension}
60       * @return {@link ArtifactCoordinate}
61       */
62      public static ArtifactCoordinate toArtifactCoordinate( Extension extension )
63      {
64          DefaultArtifactCoordinate coordinate = new DefaultArtifactCoordinate();
65  
66          coordinate.setGroupId( extension.getGroupId() );
67          coordinate.setArtifactId( extension.getArtifactId() );
68          coordinate.setVersion( extension.getVersion() );
69  
70          return coordinate;
71      }
72  
73      /**
74       * Special case: a parent is always of type {@code pom}, so can be transformed to an ArtifactCoordinate.
75       * 
76       * @param parent {@link Parent}
77       * @return {@link ArtifactCoordinate}
78       */
79      public static ArtifactCoordinate toArtifactCoordinate( Parent parent )
80      {
81          DefaultArtifactCoordinate coordinate = new DefaultArtifactCoordinate();
82  
83          coordinate.setGroupId( parent.getGroupId() );
84          coordinate.setArtifactId( parent.getArtifactId() );
85          coordinate.setVersion( parent.getVersion() );
86          coordinate.setExtension( "pom" );
87  
88          return coordinate;
89      }
90  
91      /**
92       * Special case: a plugin is always of type {@code jar}, so can be transformed to an ArtifactCoordinate.
93       * 
94       * @param plugin {@link Plugin}
95       * @return {@link ArtifactCoordinate}
96       */
97      public static ArtifactCoordinate toArtifactCoordinate( Plugin plugin )
98      {
99          DefaultArtifactCoordinate coordinate = new DefaultArtifactCoordinate();
100 
101         coordinate.setGroupId( plugin.getGroupId() );
102         coordinate.setArtifactId( plugin.getArtifactId() );
103         coordinate.setVersion( plugin.getVersion() );
104 
105         return coordinate;
106     }
107     
108     /**
109      * Special case: a reportPlugin is always of type {@code jar}, so can be transformed to an ArtifactCoordinate.
110      * 
111      * @param plugin {@link ReportPlugin}
112      * @return {@link ArtifactCoordinate}
113      */
114     public static ArtifactCoordinate toArtifactCoordinate( ReportPlugin plugin )
115     {
116         DefaultArtifactCoordinate coordinate = new DefaultArtifactCoordinate();
117 
118         coordinate.setGroupId( plugin.getGroupId() );
119         coordinate.setArtifactId( plugin.getArtifactId() );
120         coordinate.setVersion( plugin.getVersion() );
121 
122         return coordinate;
123     }
124 
125 }