aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java
diff options
context:
space:
mode:
authorGravatar juliexxia <juliexxia@google.com>2018-05-03 11:09:52 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-05-03 11:11:18 -0700
commit42025b2dfb8319d90b4a5566ab583084cfcb2de8 (patch)
treec00da6578342684654174a39f1fe8cd381da8832 /src/main/java/com/google/devtools/build/lib/skyframe/EnvironmentBackedRecursivePackageProvider.java
parent07bd86df11d00a56466fa9bf3f1220d2429cfab7 (diff)
Consolidate fields and methods of recursive package providers into an abstract class. This is also helpful for the new recursive package provider I'll be adding to support recursive patterns in cquery.
PiperOrigin-RevId: 195279920
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.java38
1 files changed, 5 insertions, 33 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 ccbc126098..6244cc45d3 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
@@ -18,20 +18,17 @@ import com.google.common.collect.ImmutableList;
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;
import com.google.devtools.build.lib.cmdline.PackageIdentifier;
import com.google.devtools.build.lib.cmdline.RepositoryName;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.packages.BuildFileContainsErrorsException;
import com.google.devtools.build.lib.packages.NoSuchPackageException;
-import com.google.devtools.build.lib.packages.NoSuchTargetException;
import com.google.devtools.build.lib.packages.Package;
-import com.google.devtools.build.lib.packages.Target;
+import com.google.devtools.build.lib.pkgcache.AbstractRecursivePackageProvider;
import com.google.devtools.build.lib.pkgcache.PathPackageLocator;
import com.google.devtools.build.lib.pkgcache.RecursivePackageProvider;
import com.google.devtools.build.lib.rules.repository.RepositoryDirectoryValue;
-import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.lib.vfs.Root;
import com.google.devtools.build.lib.vfs.RootedPath;
@@ -50,14 +47,14 @@ import java.util.Map;
* <p>This implementation never emits events through the {@link ExtendedEventHandler}s passed to its
* methods. Instead, it emits events through its environment's {@link Environment#getListener()}.
*/
-public final class EnvironmentBackedRecursivePackageProvider implements RecursivePackageProvider {
+public final class EnvironmentBackedRecursivePackageProvider
+ extends AbstractRecursivePackageProvider {
private final Environment env;
- private final PathPackageLocator pkgPath;
- public EnvironmentBackedRecursivePackageProvider(Environment env, PathPackageLocator pkgPath) {
+ EnvironmentBackedRecursivePackageProvider(Environment env, PathPackageLocator pkgPath) {
+ super(pkgPath);
this.env = env;
- this.pkgPath = pkgPath;
}
@Override
@@ -97,15 +94,6 @@ public final class EnvironmentBackedRecursivePackageProvider implements Recursiv
}
@Override
- public Path getBuildFileForPackage(PackageIdentifier packageName) {
- try {
- return pkgPath.getPackageBuildFile(packageName);
- } catch (NoSuchPackageException e) {
- return null;
- }
- }
-
- @Override
public boolean isPackage(ExtendedEventHandler eventHandler, PackageIdentifier packageId)
throws MissingDepException, InterruptedException {
SkyKey packageLookupKey = PackageLookupValue.key(packageId);
@@ -187,20 +175,4 @@ public final class EnvironmentBackedRecursivePackageProvider implements Recursiv
return packageNames;
}
-
- @Override
- public Target getTarget(ExtendedEventHandler eventHandler, Label label)
- throws NoSuchPackageException, NoSuchTargetException, MissingDepException,
- InterruptedException {
- return getPackage(eventHandler, label.getPackageIdentifier()).getTarget(label.getName());
- }
-
- /**
- * Indicates that a missing dependency is needed before target parsing can proceed. Currently
- * used only in skyframe to notify the framework of missing dependencies. Caught by the compute
- * method in {@link com.google.devtools.build.lib.skyframe.TargetPatternFunction}, which then
- * returns null in accordance with the skyframe missing dependency policy.
- */
- static class MissingDepException extends RuntimeException {
- }
}