View Javadoc
1   package org.apache.maven.tools.plugin;
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.artifact.repository.ArtifactRepository;
24  import org.apache.maven.plugin.descriptor.PluginDescriptor;
25  import org.apache.maven.project.MavenProject;
26  import org.apache.maven.settings.Settings;
27  import org.codehaus.plexus.util.ReaderFactory;
28  import org.codehaus.plexus.util.StringUtils;
29  
30  import java.net.URI;
31  import java.util.HashSet;
32  import java.util.List;
33  import java.util.Set;
34  
35  /**
36   * Default implementation of {@link PluginToolsRequest}, which is used to pass parameters to components used to extract
37   * {@link org.apache.maven.plugin.descriptor.MojoDescriptor MojoDescriptor} instances from different types of metadata
38   * for a given plugin.
39   *
40   * @author jdcasey
41   * @since 2.5
42   */
43  public class DefaultPluginToolsRequest
44      implements PluginToolsRequest
45  {
46  
47      private static final String DEFAULT_ENCODING = ReaderFactory.FILE_ENCODING;
48  
49      private PluginDescriptor pluginDescriptor;
50  
51      private MavenProject project;
52  
53      private String encoding = DEFAULT_ENCODING;
54  
55      private boolean skipErrorNoDescriptorsFound;
56  
57      private Set<Artifact> dependencies;
58  
59      private List<ArtifactRepository> remoteRepos;
60  
61      private ArtifactRepository local;
62  
63      private URI internalJavadocBaseUrl;
64      
65      private String internalJavadocVersion;
66      
67      private List<URI> externalJavadocBaseUrls;
68  
69      private Settings settings;
70  
71      public DefaultPluginToolsRequest( MavenProject project, PluginDescriptor pluginDescriptor )
72      {
73          this.project = project;
74          this.pluginDescriptor = pluginDescriptor;
75      }
76  
77      /**
78       * {@inheritDoc}
79       */
80      @Override
81      public PluginDescriptor getPluginDescriptor()
82      {
83          return pluginDescriptor;
84      }
85  
86      /**
87       * {@inheritDoc}
88       */
89      @Override
90      public PluginToolsRequest setPluginDescriptor( PluginDescriptor pluginDescriptor )
91      {
92          this.pluginDescriptor = pluginDescriptor;
93          return this;
94      }
95  
96      /**
97       * {@inheritDoc}
98       */
99      @Override
100     public MavenProject getProject()
101     {
102         return project;
103     }
104 
105     /**
106      * {@inheritDoc}
107      */
108     @Override
109     public PluginToolsRequest setProject( MavenProject project )
110     {
111         this.project = project;
112         return this;
113     }
114 
115     /**
116      * {@inheritDoc}
117      */
118     @Override
119     public String getEncoding()
120     {
121         return this.encoding;
122     }
123 
124     /**
125      * {@inheritDoc}
126      */
127     @Override
128     public PluginToolsRequest setEncoding( String encoding )
129     {
130         if ( StringUtils.isNotEmpty( encoding ) )
131         {
132             this.encoding = encoding;
133         }
134         else
135         {
136             this.encoding = DEFAULT_ENCODING;
137         }
138 
139         return this;
140     }
141 
142     /**
143      * {@inheritDoc}
144      */
145     @Override
146     public boolean isSkipErrorNoDescriptorsFound()
147     {
148         return skipErrorNoDescriptorsFound;
149     }
150 
151     /**
152      * {@inheritDoc}
153      */
154     @Override
155     public PluginToolsRequest setSkipErrorNoDescriptorsFound( boolean skipErrorNoDescriptorsFound )
156     {
157         this.skipErrorNoDescriptorsFound = skipErrorNoDescriptorsFound;
158         return this;
159     }
160 
161     @Override
162     public Set<Artifact> getDependencies()
163     {
164         if ( this.dependencies == null )
165         {
166             this.dependencies = new HashSet<>();
167         }
168         return dependencies;
169     }
170 
171     @Override
172     public PluginToolsRequest setDependencies( Set<Artifact> dependencies )
173     {
174         this.dependencies = dependencies;
175         return this;
176     }
177 
178     @Override
179     public List<ArtifactRepository> getRemoteRepos()
180     {
181         return remoteRepos;
182     }
183 
184     @Override
185     public PluginToolsRequest setRemoteRepos( List<ArtifactRepository> remoteRepos )
186     {
187         this.remoteRepos = remoteRepos;
188         return this;
189     }
190 
191     @Override
192     public ArtifactRepository getLocal()
193     {
194         return local;
195     }
196 
197     @Override
198     public PluginToolsRequest setLocal( ArtifactRepository local )
199     {
200         this.local = local;
201         return this;
202     }
203 
204     @Override
205     public PluginToolsRequest setInternalJavadocBaseUrl( URI baseUrl )
206     {
207         internalJavadocBaseUrl = baseUrl;
208         return this;
209     }
210 
211     @Override
212     public URI getInternalJavadocBaseUrl()
213     {
214         return internalJavadocBaseUrl;
215     }
216 
217     @Override
218     public PluginToolsRequest setInternalJavadocVersion( String javadocVersion )
219     {
220         this.internalJavadocVersion = javadocVersion;
221         return this;
222     }
223 
224     @Override
225     public String getInternalJavadocVersion()
226     {
227         return internalJavadocVersion;
228     }
229 
230     @Override
231     public PluginToolsRequest setExternalJavadocBaseUrls( List<URI> javadocLinks )
232     {
233         this.externalJavadocBaseUrls = javadocLinks;
234         return this;
235     }
236 
237     @Override
238     public List<URI> getExternalJavadocBaseUrls()
239     {
240         return externalJavadocBaseUrls;
241     }
242 
243     @Override
244     public PluginToolsRequest setSettings( Settings settings )
245     {
246         this.settings = settings;
247         return this;
248     }
249 
250     @Override
251     public Settings getSettings()
252     {
253         return settings;
254     }
255 }