aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Carmi Grushko <carmi@google.com>2015-08-21 16:43:26 +0000
committerGravatar Han-Wen Nienhuys <hanwen@google.com>2015-08-24 14:02:11 +0000
commit65ac3559a0377f3e8df596d63e0d91502bb09a86 (patch)
tree02ea7a72d0bdf788dd2affb0d76cf98ff4a0eed0 /src
parentd7b58cbaac23c2c4f9afe6bf79fed66d358b75b4 (diff)
Add shortcut methods for adding providers. These do not require explicitly specifying the
class of the provider object. -- MOS_MIGRATED_REVID=101227127
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/Aspect.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java7
2 files changed, 15 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/Aspect.java b/src/main/java/com/google/devtools/build/lib/analysis/Aspect.java
index 95f0683363..939e3ea18f 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/Aspect.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/Aspect.java
@@ -106,6 +106,13 @@ public final class Aspect implements Iterable<TransitiveInfoProvider> {
}
/**
+ * Adds a provider to the aspect. Shortcut for addProvider(value.getClass(), value).
+ */
+ public Builder addProvider(TransitiveInfoProvider value) {
+ return addProvider(value.getClass(), value);
+ }
+
+ /**
* Adds a set of files to an output group.
*/
public Builder addOutputGroup(String name, NestedSet<Artifact> artifacts) {
@@ -118,7 +125,6 @@ public final class Aspect implements Iterable<TransitiveInfoProvider> {
return this;
}
-
public Aspect build() {
if (!outputGroupBuilders.isEmpty()) {
ImmutableMap.Builder<String, NestedSet<Artifact>> outputGroups = ImmutableMap.builder();
@@ -136,4 +142,4 @@ public final class Aspect implements Iterable<TransitiveInfoProvider> {
return new Aspect(name, ImmutableMap.copyOf(providers));
}
}
-} \ No newline at end of file
+}
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java
index 47d0eb3449..26cc68c35e 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/RuleConfiguredTargetBuilder.java
@@ -317,6 +317,13 @@ public final class RuleConfiguredTargetBuilder {
}
/**
+ * Add a specific provider with a given value. Shortcut for addProvider(value.getClass(), value).
+ */
+ public RuleConfiguredTargetBuilder addProvider(TransitiveInfoProvider value) {
+ return addProvider(value.getClass(), value);
+ }
+
+ /**
* Add multiple providers with given values.
*/
public RuleConfiguredTargetBuilder addProviders(