aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java
diff options
context:
space:
mode:
authorGravatar Eric Fellheimer <felly@google.com>2015-12-30 15:21:43 +0000
committerGravatar Philipp Wollermann <philwo@google.com>2016-01-04 12:58:33 +0000
commit7b8dbebbd2b7ce3f437f6b74511e6878065f9dc2 (patch)
tree0463ac34de48ba0654be01a3f9f472b4753a94bc /src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java
parent4bd593aaad907f4266ad510fb395638f2126a4ea (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.java13
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);