diff options
author | 2016-02-08 14:21:14 +0000 | |
---|---|---|
committer | 2016-02-09 12:16:43 +0000 | |
commit | 552e3e40658e689881d44d69ed8ffcd6c45ae995 (patch) | |
tree | a13e7006228d25ef9e338a550686c96b90f15d90 /src/main/java/com | |
parent | 2d47eaa13fbb23c38247dad27df8ea8625430ce6 (diff) |
Expose JavaRuleOutputJarsProvider to Skylark and utilize it in ide info aspect.
--
MOS_MIGRATED_REVID=114104006
Diffstat (limited to 'src/main/java/com')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java | 34 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java | 9 |
2 files changed, 42 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java index c8e0532f17..e83ad194a6 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuleOutputJarsProvider.java @@ -18,6 +18,8 @@ import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.analysis.TransitiveInfoProvider; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; +import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable; +import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; import com.google.devtools.build.lib.util.Preconditions; import javax.annotation.Nullable; @@ -26,6 +28,7 @@ import javax.annotation.Nullable; * Provides information about jar files produced by a Java rule. */ @Immutable +@SkylarkModule(name = "JavaOutputJars", doc = "Information about outputs of a Java rule") public final class JavaRuleOutputJarsProvider implements TransitiveInfoProvider { public static final JavaRuleOutputJarsProvider EMPTY = @@ -34,6 +37,10 @@ public final class JavaRuleOutputJarsProvider implements TransitiveInfoProvider /** * A collection of artifacts associated with a jar output. */ + @SkylarkModule( + name = "JavaOutput", + doc = "Java classes jar, together with their associated source and interface archives" + ) public static class OutputJar { @Nullable private final Artifact classJar; @Nullable private final Artifact iJar; @@ -47,16 +54,34 @@ public final class JavaRuleOutputJarsProvider implements TransitiveInfoProvider } @Nullable + @SkylarkCallable( + name = "class_jar", + doc = "A classes jar file", + allowReturnNones = true, + structField = true + ) public Artifact getClassJar() { return classJar; } @Nullable + @SkylarkCallable( + name = "ijar", + doc = "A interface jar file", + allowReturnNones = true, + structField = true + ) public Artifact getIJar() { return iJar; } @Nullable + @SkylarkCallable( + name = "source_jar", + doc = "A sources archive file", + allowReturnNones = true, + structField = true + ) public Artifact getSrcJar() { return srcJar; } @@ -71,11 +96,18 @@ public final class JavaRuleOutputJarsProvider implements TransitiveInfoProvider this.jdeps = jdeps; } + @SkylarkCallable(name = "jars", doc = "A list of jars the rule outputs.", structField = true) public Iterable<OutputJar> getOutputJars() { return outputJars; } @Nullable + @SkylarkCallable( + name = "jdeps", + doc = "The jdeps file for rule outputs.", + structField = true, + allowReturnNones = true + ) public Artifact getJdeps() { return jdeps; } @@ -85,7 +117,7 @@ public final class JavaRuleOutputJarsProvider implements TransitiveInfoProvider } /** - * Builderassociated. + * Builder for {@link JavaRuleOutputJarsProvider}. */ public static class Builder { ImmutableList.Builder<OutputJar> outputJars = ImmutableList.builder(); diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java index 6b21ebe1c6..b1c3e7b489 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java @@ -69,4 +69,13 @@ public final class JavaSkylarkApiProvider extends SkylarkApiProvider { JavaSourceJarsProvider sourceJars = getInfo().getProvider(JavaSourceJarsProvider.class); return sourceJars.getTransitiveSourceJars(); } + + @SkylarkCallable( + name = "outputs", + doc = "Returns information about outputs of this Java rule", + structField = true + ) + public JavaRuleOutputJarsProvider getOutputJars() { + return getInfo().getProvider(JavaRuleOutputJarsProvider.class); + } } |