001package org.apache.maven.tools.plugin; 002 003/* 004 * Licensed to the Apache Software Foundation (ASF) under one 005 * or more contributor license agreements. See the NOTICE file 006 * distributed with this work for additional information 007 * regarding copyright ownership. The ASF licenses this file 008 * to you under the Apache License, Version 2.0 (the 009 * "License"); you may not use this file except in compliance 010 * with the License. You may obtain a copy of the License at 011 * 012 * http://www.apache.org/licenses/LICENSE-2.0 013 * 014 * Unless required by applicable law or agreed to in writing, 015 * software distributed under the License is distributed on an 016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 017 * KIND, either express or implied. See the License for the 018 * specific language governing permissions and limitations 019 * under the License. 020 */ 021 022import org.apache.maven.artifact.Artifact; 023import org.apache.maven.artifact.repository.ArtifactRepository; 024import org.apache.maven.plugin.descriptor.PluginDescriptor; 025import org.apache.maven.project.MavenProject; 026import org.apache.maven.settings.Settings; 027import org.codehaus.plexus.util.ReaderFactory; 028import org.codehaus.plexus.util.StringUtils; 029 030import java.net.URI; 031import java.util.HashSet; 032import java.util.List; 033import java.util.Set; 034 035/** 036 * Default implementation of {@link PluginToolsRequest}, which is used to pass parameters to components used to extract 037 * {@link org.apache.maven.plugin.descriptor.MojoDescriptor MojoDescriptor} instances from different types of metadata 038 * for a given plugin. 039 * 040 * @author jdcasey 041 * @since 2.5 042 */ 043public class DefaultPluginToolsRequest 044 implements PluginToolsRequest 045{ 046 047 private static final String DEFAULT_ENCODING = ReaderFactory.FILE_ENCODING; 048 049 private PluginDescriptor pluginDescriptor; 050 051 private MavenProject project; 052 053 private String encoding = DEFAULT_ENCODING; 054 055 private boolean skipErrorNoDescriptorsFound; 056 057 private Set<Artifact> dependencies; 058 059 private List<ArtifactRepository> remoteRepos; 060 061 private ArtifactRepository local; 062 063 private URI internalJavadocBaseUrl; 064 065 private String internalJavadocVersion; 066 067 private List<URI> externalJavadocBaseUrls; 068 069 private Settings settings; 070 071 public DefaultPluginToolsRequest( MavenProject project, PluginDescriptor pluginDescriptor ) 072 { 073 this.project = project; 074 this.pluginDescriptor = pluginDescriptor; 075 } 076 077 /** 078 * {@inheritDoc} 079 */ 080 @Override 081 public PluginDescriptor getPluginDescriptor() 082 { 083 return pluginDescriptor; 084 } 085 086 /** 087 * {@inheritDoc} 088 */ 089 @Override 090 public PluginToolsRequest setPluginDescriptor( PluginDescriptor pluginDescriptor ) 091 { 092 this.pluginDescriptor = pluginDescriptor; 093 return this; 094 } 095 096 /** 097 * {@inheritDoc} 098 */ 099 @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}