aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/packages/AdvertisedProviderSet.java
diff options
context:
space:
mode:
authorGravatar Dmitry Lomov <dslomov@google.com>2017-03-04 00:16:52 +0000
committerGravatar Yue Gan <yueg@google.com>2017-03-06 09:46:54 +0000
commit04c71be192739eae9197e0fe3b054e4278fe16d1 (patch)
tree26fd2ac9e8b1633303aebd556bb85cc272d62f7c /src/main/java/com/google/devtools/build/lib/packages/AdvertisedProviderSet.java
parenta291e9bd9c12a0e98967da492ebcfe41f6b2a5d8 (diff)
Support declared providers in AdvertisedProviderSet.
-- PiperOrigin-RevId: 149165836 MOS_MIGRATED_REVID=149165836
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/packages/AdvertisedProviderSet.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/packages/AdvertisedProviderSet.java27
1 files changed, 18 insertions, 9 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/AdvertisedProviderSet.java b/src/main/java/com/google/devtools/build/lib/packages/AdvertisedProviderSet.java
index 59c25830bd..1f1ddd6d85 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/AdvertisedProviderSet.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/AdvertisedProviderSet.java
@@ -38,12 +38,11 @@ import java.util.Objects;
public final class AdvertisedProviderSet {
private final boolean canHaveAnyProvider;
private final ImmutableSet<Class<?>> nativeProviders;
- // todo(dslomov,vladmos): support declared providers
- private final ImmutableSet<String> skylarkProviders;
+ private final ImmutableSet<SkylarkProviderIdentifier> skylarkProviders;
private AdvertisedProviderSet(boolean canHaveAnyProvider,
ImmutableSet<Class<?>> nativeProviders,
- ImmutableSet<String> skylarkProviders) {
+ ImmutableSet<SkylarkProviderIdentifier> skylarkProviders) {
this.canHaveAnyProvider = canHaveAnyProvider;
this.nativeProviders = nativeProviders;
this.skylarkProviders = skylarkProviders;
@@ -52,15 +51,15 @@ public final class AdvertisedProviderSet {
public static final AdvertisedProviderSet ANY =
new AdvertisedProviderSet(true,
ImmutableSet.<Class<?>>of(),
- ImmutableSet.<String>of());
+ ImmutableSet.<SkylarkProviderIdentifier>of());
public static final AdvertisedProviderSet EMPTY =
new AdvertisedProviderSet(false,
ImmutableSet.<Class<?>>of(),
- ImmutableSet.<String>of());
+ ImmutableSet.<SkylarkProviderIdentifier>of());
public static AdvertisedProviderSet create(
ImmutableSet<Class<?>> nativeProviders,
- ImmutableSet<String> skylarkProviders) {
+ ImmutableSet<SkylarkProviderIdentifier> skylarkProviders) {
if (nativeProviders.isEmpty() && skylarkProviders.isEmpty()) {
return EMPTY;
}
@@ -106,7 +105,7 @@ public final class AdvertisedProviderSet {
/**
* Get all advertised Skylark providers.
*/
- public ImmutableSet<String> getSkylarkProviders() {
+ public ImmutableSet<SkylarkProviderIdentifier> getSkylarkProviders() {
return skylarkProviders;
}
@@ -118,7 +117,7 @@ public final class AdvertisedProviderSet {
public static class Builder {
private boolean canHaveAnyProvider;
private final ArrayList<Class<?>> nativeProviders;
- private final ArrayList<String> skylarkProviders;
+ private final ArrayList<SkylarkProviderIdentifier> skylarkProviders;
private Builder() {
nativeProviders = new ArrayList<>();
skylarkProviders = new ArrayList<>();
@@ -156,7 +155,17 @@ public final class AdvertisedProviderSet {
}
public Builder addSkylark(String providerName) {
- skylarkProviders.add(providerName);
+ skylarkProviders.add(SkylarkProviderIdentifier.forLegacy(providerName));
+ return this;
+ }
+
+ public Builder addSkylark(SkylarkProviderIdentifier id) {
+ skylarkProviders.add(id);
+ return this;
+ }
+
+ public Builder addSkylark(ClassObjectConstructor.Key id) {
+ skylarkProviders.add(SkylarkProviderIdentifier.forKey(id));
return this;
}
}