blob: f1376d30362a12113eb2b6402a95eac2c84429b3 [file] [log] [blame]
package org.apache.maven.plugin.javadoc.resolver;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.artifact.metadata.ArtifactMetadataSource;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactResolver;
import org.apache.maven.artifact.resolver.filter.ArtifactFilter;
import org.apache.maven.plugin.logging.Log;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.archiver.manager.ArchiverManager;
import java.io.File;
import java.util.List;
/**
*
*/
public class SourceResolverConfig
{
private final MavenProject project;
private ArtifactFilter filter;
private List<MavenProject> reactorProjects;
private final File outputBasedir;
private boolean compileSourceIncluded;
private boolean testSourceIncluded;
private final ArtifactRepository localRepository;
private final ArtifactResolver artifactResolver;
private final ArtifactMetadataSource artifactMetadataSource;
private final ArchiverManager archiverManager;
private final ArtifactFactory artifactFactory;
private final Log log;
/**
* @param log {@link Log}
* @param project {@link MavenProject}
* @param localRepository {@link ArtifactRepository}
* @param outputBasedir The output base directory.
* @param artifactResolver {@link ArtifactResolver}
* @param artifactFactory {@link ArtifactFactory}
* @param artifactMetadataSource {@link ArtifactMetadataSource}
* @param archiverManager {@link ArchiverManager}
*/
public SourceResolverConfig( final Log log, final MavenProject project, final ArtifactRepository localRepository,
final File outputBasedir, final ArtifactResolver artifactResolver,
final ArtifactFactory artifactFactory,
final ArtifactMetadataSource artifactMetadataSource,
final ArchiverManager archiverManager )
{
this.log = log;
this.project = project;
this.localRepository = localRepository;
this.outputBasedir = outputBasedir;
this.artifactResolver = artifactResolver;
this.artifactFactory = artifactFactory;
this.artifactMetadataSource = artifactMetadataSource;
this.archiverManager = archiverManager;
}
/**
* @param filter {@link ArtifactFilter}
* @return {@link SourceResolverConfig}
*/
public SourceResolverConfig withFilter( final ArtifactFilter filter )
{
this.filter = filter;
return this;
}
/**
* @param reactorProjects The list of reactor projects.
* @return {@link SourceResolverConfig}
*/
public SourceResolverConfig withReactorProjects( final List<MavenProject> reactorProjects )
{
this.reactorProjects = reactorProjects;
return this;
}
/**
* @return {@link SourceResolverConfig}
*/
public SourceResolverConfig withCompileSources()
{
compileSourceIncluded = true;
return this;
}
/**
* @return {@link SourceResolverConfig}
*/
public SourceResolverConfig withoutCompileSources()
{
compileSourceIncluded = false;
return this;
}
/**
* @return {@link SourceResolverConfig}
*/
public SourceResolverConfig withTestSources()
{
testSourceIncluded = true;
return this;
}
/**
* @return {@link SourceResolverConfig}
*/
public SourceResolverConfig withoutTestSources()
{
testSourceIncluded = false;
return this;
}
/**
* @return {@link MavenProject}
*/
public MavenProject project()
{
return project;
}
/**
* @return {@link ArtifactRepository}
*/
public ArtifactRepository localRepository()
{
return localRepository;
}
/**
* @return {@link ArtifactFilter}
*/
public ArtifactFilter filter()
{
return filter;
}
/**
* @return list of {@link MavenProject}
*/
public List<MavenProject> reactorProjects()
{
return reactorProjects;
}
/**
* @return {@link #outputBasedir}
*/
public File outputBasedir()
{
return outputBasedir;
}
/**
* @return {@link #compileSourceIncluded}
*/
public boolean includeCompileSources()
{
return compileSourceIncluded;
}
/**
* @return {@link #testSourceIncluded}
*/
public boolean includeTestSources()
{
return testSourceIncluded;
}
/**
* @return {@link #artifactResolver}
*/
public ArtifactResolver artifactResolver()
{
return artifactResolver;
}
/**
* @return {@link #artifactMetadataSource}
*/
public ArtifactMetadataSource artifactMetadataSource()
{
return artifactMetadataSource;
}
/**
* @return {@link #archiverManager}
*/
public ArchiverManager archiverManager()
{
return archiverManager;
}
/**
* @return {@link #artifactFactory}
*/
public ArtifactFactory artifactFactory()
{
return artifactFactory;
}
/**
* @return {@link #log}
*/
public Log log()
{
return log;
}
}