/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.anarres.gradle.plugin.jarjar; import java.util.Collections; import java.util.Set; import javax.annotation.Nonnull; import org.gradle.api.Buildable; import org.gradle.api.Task; import org.gradle.api.artifacts.Dependency; import org.gradle.api.internal.artifacts.ResolvableDependency; import org.gradle.api.tasks.TaskDependency; /** * * @author shevek */ public class JarjarDependency implements /* ResolvableDependency, */ Dependency, Buildable { private final Dependency delegate; public JarjarDependency(@Nonnull Dependency delegate) { this.delegate = delegate; } @Override public String getGroup() { return delegate.getGroup(); } @Override public String getName() { return delegate.getName(); } @Override public String getVersion() { return delegate.getVersion(); } @Override public boolean contentEquals(Dependency d) { while (d instanceof JarjarDependency) d = ((JarjarDependency) d).delegate; return delegate.contentEquals(d); } @Override public Dependency copy() { return new JarjarDependency(delegate); } @Override public TaskDependency getBuildDependencies() { if (delegate instanceof Buildable) return ((Buildable) delegate).getBuildDependencies(); return new TaskDependency() { @Override public Set<? extends Task> getDependencies(Task task) { return Collections.emptySet(); } }; } }