diff options
author | Sergio Campama <kaipi@google.com> | 2016-12-09 21:47:35 +0000 |
---|---|---|
committer | John Cater <jcater@google.com> | 2016-12-12 20:35:09 +0000 |
commit | fd93143f93a9873218cd2eb783a0bff322847213 (patch) | |
tree | ec2f06ee63d37446a63aec7ceb7a5a24ff8cd91b /src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java | |
parent | 905a29d0e61d5393f2b7646fae8e6b4a819e68f4 (diff) |
Add a testing Skylark module that exposes an ExecutionInfoProvider constructor.
--
PiperOrigin-RevId: 141594768
MOS_MIGRATED_REVID=141594768
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java index 495d5ebdd4..1abc8934e4 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java @@ -25,6 +25,8 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.collect.nestedset.Order; import com.google.devtools.build.lib.packages.BuildType; +import com.google.devtools.build.lib.packages.SkylarkClassObject; +import com.google.devtools.build.lib.packages.SkylarkClassObjectConstructor; import com.google.devtools.build.lib.packages.TriState; import com.google.devtools.build.lib.vfs.PathFragment; @@ -77,6 +79,23 @@ public final class AnalysisUtils { } /** + * Returns the list of declared providers (native and Skylark) of the specified Skylark key from a + * set of transitive info collections. + */ + public static Iterable<SkylarkClassObject> getProviders( + Iterable<? extends TransitiveInfoCollection> prerequisites, + final SkylarkClassObjectConstructor.Key skylarkKey) { + ImmutableList.Builder<SkylarkClassObject> result = ImmutableList.builder(); + for (TransitiveInfoCollection prerequisite : prerequisites) { + SkylarkClassObject prerequisiteProvider = prerequisite.get(skylarkKey); + if (prerequisiteProvider != null) { + result.add(prerequisiteProvider); + } + } + return result.build(); + } + + /** * Returns the iterable of collections that have the specified provider. */ public static <S extends TransitiveInfoCollection, C extends TransitiveInfoProvider> Iterable<S> |