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