aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/java/jarjar/jarjar-gradle/src/main/java/org/anarres/gradle/plugin/jarjar/JarjarDependency.java
blob: 50e292f6765b76c99bccf8261128ecbbda275c8f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*
 * 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();
            }
        };
    }
}