001 /* 002 * #%L 003 * License Maven Plugin 004 * 005 * $Id: MavenProjectDependenciesConfigurator.java 14741 2011-09-20 08:31:41Z tchemit $ 006 * $HeadURL: http://svn.codehaus.org/mojo/tags/license-maven-plugin-1.0/src/main/java/org/codehaus/mojo/license/MavenProjectDependenciesConfigurator.java $ 007 * %% 008 * Copyright (C) 2011 CodeLutin, Codehaus, Tony Chemit 009 * %% 010 * This program is free software: you can redistribute it and/or modify 011 * it under the terms of the GNU Lesser General Public License as 012 * published by the Free Software Foundation, either version 3 of the 013 * License, or (at your option) any later version. 014 * 015 * This program is distributed in the hope that it will be useful, 016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 018 * GNU General Lesser Public License for more details. 019 * 020 * You should have received a copy of the GNU General Lesser Public 021 * License along with this program. If not, see 022 * <http://www.gnu.org/licenses/lgpl-3.0.html>. 023 * #L% 024 */ 025 package org.codehaus.mojo.license; 026 027 import java.util.List; 028 029 /** 030 * Contract to configure which dependencies will be loaded by the dependency tool via the method 031 * {@link DependenciesTool#loadProjectDependencies(org.apache.maven.project.MavenProject, MavenProjectDependenciesConfigurator, org.apache.maven.artifact.repository.ArtifactRepository, java.util.List, java.util.SortedMap)} 032 * 033 * @author tchemit <chemit@codelutin.com> 034 * @see DependenciesTool 035 * @since 1.0 036 */ 037 public interface MavenProjectDependenciesConfigurator 038 { 039 040 /** 041 * @return {@code true} if should include transitive dependencies, {@code false} to include only direct 042 * dependencies. 043 */ 044 boolean isIncludeTransitiveDependencies(); 045 046 /** 047 * @return list of scopes to include while loading dependencies, if {@code null} is setted, then include all scopes. 048 */ 049 List<String> getIncludedScopes(); 050 051 /** 052 * @return list of scopes to exclude while loading dependencies, if {@code null} is setted, then include all scopes. 053 */ 054 List<String> getExcludedScopes(); 055 056 /** 057 * @return a pattern to include dependencies by thier {@code artificatId}, if {@code null} is setted then include 058 * all artifacts. 059 */ 060 String getIncludedArtifacts(); 061 062 /** 063 * @return a pattern to include dependencies by their {@code groupId}, if {@code null} is setted then include 064 * all artifacts. 065 */ 066 String getIncludedGroups(); 067 068 /** 069 * @return a pattern to exclude dependencies by their {@code artifactId}, if {@code null} is setted the no exclude is 070 * done on artifactId. 071 */ 072 String getExcludedGroups(); 073 074 /** 075 * @return a pattern to exclude dependencies by their {@code groupId}, if {@code null} is setted then no exclude 076 * is done on groupId. 077 */ 078 String getExcludedArtifacts(); 079 080 /** 081 * @return {@code true} if verbose mode is on, {@code false} otherwise. 082 */ 083 boolean isVerbose(); 084 }