aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-02-26 11:03:30 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-26 11:07:07 -0800
commit6724af262b8fc996433a8442ed202c0483e24319 (patch)
treee90ce3184fbc4d1d9a1add1b8e514ff7038c03df /src/main/java/com/google
parent3343b2acc6b17883ca77d95089dd814b0c6ef826 (diff)
@AutoCodec FileWriteAction.
PiperOrigin-RevId: 187048921
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java29
1 files changed, 23 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java
index 8fcb74ade6..6ba8be6741 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java
@@ -23,6 +23,7 @@ import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.util.LazyString;
import java.io.ByteArrayInputStream;
@@ -40,6 +41,7 @@ import java.util.zip.GZIPOutputStream;
* <p>TODO(bazel-team): Choose a better name to distinguish this class from {@link
* BinaryFileWriteAction}.
*/
+@AutoCodec
@Immutable // if fileContents is immutable
public final class FileWriteAction extends AbstractFileWriteAction {
@@ -84,12 +86,27 @@ public final class FileWriteAction extends AbstractFileWriteAction {
CharSequence fileContents,
boolean makeExecutable,
Compression allowCompression) {
- super(owner, inputs, output, makeExecutable);
- if (allowCompression == Compression.ALLOW
- && fileContents instanceof String
- && fileContents.length() > COMPRESS_CHARS_THRESHOLD) {
- fileContents = new CompressedString((String) fileContents);
- }
+ this(
+ owner,
+ inputs,
+ output,
+ allowCompression == Compression.ALLOW
+ && fileContents instanceof String
+ && fileContents.length() > COMPRESS_CHARS_THRESHOLD
+ ? new CompressedString((String) fileContents)
+ : fileContents,
+ makeExecutable);
+ }
+
+ @AutoCodec.VisibleForSerialization
+ @AutoCodec.Instantiator
+ FileWriteAction(
+ ActionOwner owner,
+ Iterable<Artifact> inputs,
+ Artifact primaryOutput,
+ CharSequence fileContents,
+ boolean makeExecutable) {
+ super(owner, inputs, primaryOutput, makeExecutable);
this.fileContents = fileContents;
}