package org.jboss.shrinkwrap.resolver.impl.gradle; import java.util.Arrays; import java.util.HashSet; import java.util.Set; /** * Object to configure which scope dependencies must be resolved by Gradle resolver. * This class is a part of the ShrinkWrap Gradle Resolver DSL. */ public class ProjectEquippedResolveStage { private final String projectDirectory; private final Set<ScopeType> scopeTypeSet = new HashSet<>(); public ProjectEquippedResolveStage(final String projectDirectory) { this.projectDirectory = projectDirectory; } /** * Import dependencies with given scope. * @param scopeTypes to resolve. * @return this instance. */ public ProjectEquippedResolveStage importDependencies(final ScopeType...scopeTypes) { scopeTypeSet.addAll(Arrays.asList(scopeTypes)); return this; } /** * Import all test dependencies. * @return this instance. */ public ProjectEquippedResolveStage importTestDependencies() { return importDependencies(ScopeType.TEST); } /** * Import all runtime and test dependencies. * @return this instance. */ public ProjectEquippedResolveStage importRuntimeAndTestDependencies() { return importDependencies(ScopeType.TEST, ScopeType.RUNTIME); } /** * Import runtime dependencies. * @return this instance. */ public ProjectEquippedResolveStage importRuntime() { return importDependencies(ScopeType.RUNTIME); } /** * Import compile and runtime dependencies. * @return this instance. */ public ProjectEquippedResolveStage importCompileAndRuntime() { return importDependencies(ScopeType.COMPILE, ScopeType.RUNTIME); } /** * Method termination to resolve all dependencies of configured scopes. * @return Class to get results. */ public GradleStrategyStage resolve() { return new GradleStrategyStage(projectDirectory, scopeTypeSet); } }