diff options
author | janakr <janakr@google.com> | 2018-02-26 11:03:30 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-02-26 11:07:07 -0800 |
commit | 6724af262b8fc996433a8442ed202c0483e24319 (patch) | |
tree | e90ce3184fbc4d1d9a1add1b8e514ff7038c03df /src/main/java | |
parent | 3343b2acc6b17883ca77d95089dd814b0c6ef826 (diff) |
@AutoCodec FileWriteAction.
PiperOrigin-RevId: 187048921
Diffstat (limited to 'src/main/java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java | 29 |
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; } |