diff options
author | 2015-12-30 15:21:43 +0000 | |
---|---|---|
committer | 2016-01-04 12:58:33 +0000 | |
commit | 7b8dbebbd2b7ce3f437f6b74511e6878065f9dc2 (patch) | |
tree | 0463ac34de48ba0654be01a3f9f472b4753a94bc /src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java | |
parent | 4bd593aaad907f4266ad510fb395638f2126a4ea (diff) |
Add bulk package lookup for use during target pattern resolution.
--
MOS_MIGRATED_REVID=111130363
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java b/src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java index 115a0f5445..db6639dd5d 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java @@ -13,6 +13,7 @@ // limitations under the License. package com.google.devtools.build.lib.skyframe; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import com.google.devtools.build.lib.cmdline.Label; @@ -37,6 +38,7 @@ import com.google.devtools.build.skyframe.SkyKey; import java.util.ArrayList; import java.util.List; +import java.util.Map; /** * A {@link RecursivePackageProvider} backed by an {@link Environment}. Its methods @@ -78,6 +80,17 @@ public final class EnvironmentBackedRecursivePackageProvider implements Recursiv } @Override + public Map<PackageIdentifier, Package> bulkGetPackages(EventHandler eventHandler, + Iterable<PackageIdentifier> pkgIds) + throws NoSuchPackageException, InterruptedException { + ImmutableMap.Builder<PackageIdentifier, Package> builder = ImmutableMap.builder(); + for (PackageIdentifier pkgId : pkgIds) { + builder.put(pkgId, getPackage(eventHandler, pkgId)); + } + return builder.build(); + } + + @Override public boolean isPackage(EventHandler eventHandler, PackageIdentifier packageId) throws MissingDepException { SkyKey packageLookupKey = PackageLookupValue.key(packageId); |