aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java b/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java
index cd5085d947..c67645d41b 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java
@@ -15,6 +15,7 @@
package com.google.devtools.build.lib.actions;
import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.eventbus.EventBus;
import com.google.devtools.build.lib.actions.Artifact.ArtifactExpander;
@@ -27,6 +28,7 @@ import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.util.io.FileOutErr;
import com.google.devtools.build.lib.vfs.FileSystem;
import com.google.devtools.build.lib.vfs.Path;
+import com.google.devtools.build.lib.vfs.PathFragment;
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyFunction.Environment;
import com.google.devtools.common.options.OptionsClassProvider;
@@ -47,10 +49,14 @@ public class ActionExecutionContext implements Closeable {
private final MetadataHandler metadataHandler;
private final FileOutErr fileOutErr;
private final ImmutableMap<String, String> clientEnv;
+ private final ImmutableMap<PathFragment, ImmutableList<FilesetOutputSymlink>>
+ inputFilesetMappings;
private final ArtifactExpander artifactExpander;
@Nullable
private final Environment env;
+ @Nullable private ImmutableList<FilesetOutputSymlink> outputSymlinks;
+
private ActionExecutionContext(
Executor executor,
ActionInputFileCache actionInputFileCache,
@@ -59,6 +65,7 @@ public class ActionExecutionContext implements Closeable {
MetadataHandler metadataHandler,
FileOutErr fileOutErr,
Map<String, String> clientEnv,
+ ImmutableMap<PathFragment, ImmutableList<FilesetOutputSymlink>> inputFilesetMappings,
@Nullable ArtifactExpander artifactExpander,
@Nullable SkyFunction.Environment env) {
this.actionInputFileCache = actionInputFileCache;
@@ -67,6 +74,7 @@ public class ActionExecutionContext implements Closeable {
this.metadataHandler = metadataHandler;
this.fileOutErr = fileOutErr;
this.clientEnv = ImmutableMap.copyOf(clientEnv);
+ this.inputFilesetMappings = inputFilesetMappings;
this.executor = executor;
this.artifactExpander = artifactExpander;
this.env = env;
@@ -80,6 +88,7 @@ public class ActionExecutionContext implements Closeable {
MetadataHandler metadataHandler,
FileOutErr fileOutErr,
Map<String, String> clientEnv,
+ ImmutableMap<PathFragment, ImmutableList<FilesetOutputSymlink>> inputFilesetMappings,
ArtifactExpander artifactExpander) {
this(
executor,
@@ -89,6 +98,7 @@ public class ActionExecutionContext implements Closeable {
metadataHandler,
fileOutErr,
clientEnv,
+ inputFilesetMappings,
artifactExpander,
null);
}
@@ -110,6 +120,7 @@ public class ActionExecutionContext implements Closeable {
metadataHandler,
fileOutErr,
clientEnv,
+ ImmutableMap.of(),
null,
env);
}
@@ -176,6 +187,24 @@ public class ActionExecutionContext implements Closeable {
return executor.getEventHandler();
}
+ public ImmutableMap<PathFragment, ImmutableList<FilesetOutputSymlink>> getInputFilesetMappings() {
+ return inputFilesetMappings;
+ }
+
+ @Nullable
+ public ImmutableList<FilesetOutputSymlink> getOutputSymlinks() {
+ return outputSymlinks;
+ }
+
+ public void setOutputSymlinks(ImmutableList<FilesetOutputSymlink> outputSymlinks) {
+ Preconditions.checkState(
+ this.outputSymlinks == null,
+ "Unexpected reassignment of the outputSymlinks of a Fileset from\n:%s to:\n%s",
+ this.outputSymlinks,
+ outputSymlinks);
+ this.outputSymlinks = outputSymlinks;
+ }
+
/**
* Looks up and returns an action context implementation of the given interface type.
*/
@@ -259,6 +288,7 @@ public class ActionExecutionContext implements Closeable {
metadataHandler,
fileOutErr,
clientEnv,
+ inputFilesetMappings,
artifactExpander,
env);
}