diff options
author | 2017-03-04 00:16:52 +0000 | |
---|---|---|
committer | 2017-03-06 09:46:54 +0000 | |
commit | 04c71be192739eae9197e0fe3b054e4278fe16d1 (patch) | |
tree | 26fd2ac9e8b1633303aebd556bb85cc272d62f7c /src/main/java/com/google/devtools/build/lib/packages/AdvertisedProviderSet.java | |
parent | a291e9bd9c12a0e98967da492ebcfe41f6b2a5d8 (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.java | 27 |
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; } } |