aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/vfs/OutputService.java
diff options
context:
space:
mode:
authorGravatar tomlu <tomlu@google.com>2018-08-03 11:21:29 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-08-03 11:23:10 -0700
commit880508ccf8bab7aa9d238210f8b2ee21d52600f9 (patch)
tree7a437bafc3dad084e2a92f4c128fdaa113ccc99f /src/main/java/com/google/devtools/build/lib/vfs/OutputService.java
parent172d36dfe19f4ddab275ef7116525aa67c3e9877 (diff)
Add support to completion function to create a path resolver from its looked-up artifact values.
RELNOTES: None PiperOrigin-RevId: 207295716
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/vfs/OutputService.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/vfs/OutputService.java19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/vfs/OutputService.java b/src/main/java/com/google/devtools/build/lib/vfs/OutputService.java
index 9afa82fb53..03503bfed1 100644
--- a/src/main/java/com/google/devtools/build/lib/vfs/OutputService.java
+++ b/src/main/java/com/google/devtools/build/lib/vfs/OutputService.java
@@ -18,6 +18,7 @@ import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.actions.Action;
import com.google.devtools.build.lib.actions.ActionInputMap;
import com.google.devtools.build.lib.actions.Artifact;
+import com.google.devtools.build.lib.actions.ArtifactPathResolver;
import com.google.devtools.build.lib.actions.BuildFailedException;
import com.google.devtools.build.lib.actions.EnvironmentalExecException;
import com.google.devtools.build.lib.actions.ExecException;
@@ -116,7 +117,7 @@ public interface OutputService {
* com.google.devtools.build.lib.pkgcache.PathPackageLocator})
* @param inputArtifactData information about required inputs to the action
* @param outputArtifacts required outputs of the action
- * @return an action-scoped filesystem if {@link supportsActionFileSystem} is true
+ * @return an action-scoped filesystem if {@link #supportsActionFileSystem} is true
*/
@Nullable
default FileSystem createActionFileSystem(
@@ -130,12 +131,24 @@ public interface OutputService {
}
/**
- * Updates the context used by the filesystem returned by {@link createActionFileSystem}.
+ * Updates the context used by the filesystem returned by {@link #createActionFileSystem}.
*
* <p>Should be called as context changes throughout action execution.
*
- * @param actionFileSystem must be a filesystem returned by {@link createActionFileSystem}.
+ * @param actionFileSystem must be a filesystem returned by {@link #createActionFileSystem}.
*/
default void updateActionFileSystemContext(
FileSystem actionFileSystem, SkyFunction.Environment env, MetadataConsumer consumer) {}
+
+ default boolean supportsPathResolverForArtifactValues() {
+ return false;
+ }
+
+ default ArtifactPathResolver createPathResolverForArtifactValues(
+ PathFragment execRoot,
+ FileSystem fileSystem,
+ ImmutableList<Root> pathEntries,
+ ActionInputMap actionInputMap) {
+ throw new IllegalStateException("Path resolver not supported by this class");
+ }
}