package org.revapi.maven.utils;
import org.eclipse.aether.collection.DependencyCollectionContext;
import org.eclipse.aether.collection.DependencyTraverser;
import org.eclipse.aether.graph.Dependency;
/**
* @author Lukas Krejci
* @since 0.1
*/
public class ScopeDependencyTraverser implements DependencyTraverser {
private final String[] scopes;
public ScopeDependencyTraverser(String... scopes) {
this.scopes = scopes;
}
private boolean hasRequiredScope(Dependency dep) {
String scope = dep.getScope();
if (scope == null || scope.isEmpty()) {
scope = "compile";
}
for (String s : scopes) {
if (s.equals(scope)) {
return true;
}
}
return false;
}
@Override
public boolean traverseDependency(Dependency dependency) {
return hasRequiredScope(dependency);
}
@Override
public DependencyTraverser deriveChildTraverser(DependencyCollectionContext context) {
return this;
}
}