diff options
author | 2018-02-27 15:39:08 -0800 | |
---|---|---|
committer | 2018-02-27 15:41:09 -0800 | |
commit | b4e8cd7beddc3c29acf7629d4e6eef9b6ca67c5f (patch) | |
tree | af1f6bd6f51ccd0e2168f924ac2eb4bfa6070298 /src | |
parent | 8dbf6054e4f843c42d7339e5abc48b9b655f6dae (diff) |
@AutoCodec TreeArtifactValue and FileArtifactValue.
PiperOrigin-RevId: 187243942
Diffstat (limited to 'src')
3 files changed, 22 insertions, 10 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/NativeAspectClass.java b/src/main/java/com/google/devtools/build/lib/packages/NativeAspectClass.java index ed6b77bbc2..68107eb99b 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/NativeAspectClass.java +++ b/src/main/java/com/google/devtools/build/lib/packages/NativeAspectClass.java @@ -50,7 +50,8 @@ public abstract class NativeAspectClass implements AspectClass { public void serialize( SerializationContext context, NativeAspectClass obj, CodedOutputStream codedOut) throws SerializationException, IOException { - RuleClassProvider ruleClassProvider = context.getDependency(RuleClassProvider.class); + RuleClassProvider ruleClassProvider = + Preconditions.checkNotNull(context.getDependency(RuleClassProvider.class), obj); NativeAspectClass storedAspect = ruleClassProvider.getNativeAspectClass(obj.getKey()); Preconditions.checkState( obj == storedAspect, "Not stored right: %s %s %s", obj, storedAspect, ruleClassProvider); @@ -62,7 +63,8 @@ public abstract class NativeAspectClass implements AspectClass { throws SerializationException, IOException { String aspectKey = StringCodecs.asciiOptimized().deserialize(context, codedIn); return Preconditions.checkNotNull( - context.getDependency(RuleClassProvider.class).getNativeAspectClass(aspectKey), + Preconditions.checkNotNull(context.getDependency(RuleClassProvider.class), aspectKey) + .getNativeAspectClass(aspectKey), aspectKey); } } diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/FileArtifactValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/FileArtifactValue.java index 4c9a273139..8d171873ae 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/FileArtifactValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/FileArtifactValue.java @@ -23,6 +23,7 @@ import com.google.devtools.build.lib.actions.cache.DigestUtils; import com.google.devtools.build.lib.actions.cache.Metadata; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.vfs.FileStatus; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.Symlinks; @@ -113,21 +114,24 @@ public abstract class FileArtifactValue implements SkyValue, Metadata { } } - static final FileArtifactValue DEFAULT_MIDDLEMAN = new SingletonMarkerValue(); + @AutoCodec static final FileArtifactValue DEFAULT_MIDDLEMAN = new SingletonMarkerValue(); /** Data that marks that a file is not present on the filesystem. */ - @VisibleForTesting + @VisibleForTesting @AutoCodec public static final FileArtifactValue MISSING_FILE_MARKER = new SingletonMarkerValue(); /** * Represents an omitted file -- we are aware of it but it doesn't exist. All access methods are * unsupported. */ - static final FileArtifactValue OMITTED_FILE_MARKER = new OmittedFileValue(); + @AutoCodec static final FileArtifactValue OMITTED_FILE_MARKER = new OmittedFileValue(); - private static final class DirectoryArtifactValue extends FileArtifactValue { + @AutoCodec.VisibleForSerialization + @AutoCodec + static final class DirectoryArtifactValue extends FileArtifactValue { private final long mtime; - private DirectoryArtifactValue(long mtime) { + @AutoCodec.VisibleForSerialization + DirectoryArtifactValue(long mtime) { this.mtime = mtime; } @@ -163,12 +167,15 @@ public abstract class FileArtifactValue implements SkyValue, Metadata { } } - private static final class RegularFileArtifactValue extends FileArtifactValue { + @AutoCodec.VisibleForSerialization + @AutoCodec + static final class RegularFileArtifactValue extends FileArtifactValue { private final byte[] digest; @Nullable private final FileContentsProxy proxy; private final long size; - private RegularFileArtifactValue(byte[] digest, @Nullable FileContentsProxy proxy, long size) { + @AutoCodec.VisibleForSerialization + RegularFileArtifactValue(byte[] digest, @Nullable FileContentsProxy proxy, long size) { this.digest = Preconditions.checkNotNull(digest); this.proxy = proxy; this.size = size; diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java index f54522f8f1..4cf001457a 100644 --- a/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java +++ b/src/main/java/com/google/devtools/build/lib/skyframe/TreeArtifactValue.java @@ -23,6 +23,7 @@ import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.Artifact.TreeFileArtifact; import com.google.devtools.build.lib.actions.cache.DigestUtils; import com.google.devtools.build.lib.actions.cache.Metadata; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.vfs.Path; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.build.skyframe.SkyValue; @@ -36,6 +37,7 @@ import javax.annotation.Nullable; * Value for TreeArtifacts, which contains a digest and the {@link FileArtifactValue}s of its child * {@link TreeFileArtifact}s. */ +@AutoCodec class TreeArtifactValue implements SkyValue { private static final Function<Artifact, PathFragment> PARENT_RELATIVE_PATHS = new Function<Artifact, PathFragment>() { @@ -48,7 +50,8 @@ class TreeArtifactValue implements SkyValue { private final byte[] digest; private final Map<TreeFileArtifact, FileArtifactValue> childData; - private TreeArtifactValue(byte[] digest, Map<TreeFileArtifact, FileArtifactValue> childData) { + @AutoCodec.VisibleForSerialization + TreeArtifactValue(byte[] digest, Map<TreeFileArtifact, FileArtifactValue> childData) { this.digest = digest; this.childData = ImmutableMap.copyOf(childData); } |