diff options
author | janakr <janakr@google.com> | 2018-04-05 14:19:53 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-04-05 14:21:48 -0700 |
commit | 204779650039a8244f72d99dfb8d415547c09cff (patch) | |
tree | d6ebb8f2f4406abd048e10832c5c9741cfd86356 /src/main/java/com/google/devtools/build/lib/collect | |
parent | 2660ffe3c9303466d86fff4643c0c1b5e34a8061 (diff) |
Use @AutoCodec for NestedSet serialization.
PiperOrigin-RevId: 191797413
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/collect')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/collect/nestedset/BUILD | 3 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSet.java | 5 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSetCodecDisabled.java (renamed from src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSetCodec.java) | 9 |
3 files changed, 12 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/collect/nestedset/BUILD b/src/main/java/com/google/devtools/build/lib/collect/nestedset/BUILD index dbf0d0684a..8c32fb694d 100644 --- a/src/main/java/com/google/devtools/build/lib/collect/nestedset/BUILD +++ b/src/main/java/com/google/devtools/build/lib/collect/nestedset/BUILD @@ -12,7 +12,7 @@ java_library( srcs = [ "NestedSet.java", "NestedSetBuilder.java", - "NestedSetCodec.java", + "NestedSetCodecDisabled.java", "NestedSetView.java", "NestedSetVisitor.java", "Order.java", @@ -20,6 +20,7 @@ java_library( deps = [ "//src/main/java/com/google/devtools/build/lib/collect/compacthashset", "//src/main/java/com/google/devtools/build/lib/skyframe/serialization", + "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec", "//third_party:guava", "//third_party:jsr305", "//third_party/protobuf:protobuf_java", diff --git a/src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSet.java b/src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSet.java index 062d24d67c..d4540f6c9e 100644 --- a/src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSet.java +++ b/src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSet.java @@ -19,6 +19,7 @@ import com.google.common.base.Function; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.devtools.build.lib.collect.compacthashset.CompactHashSet; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import java.util.AbstractCollection; import java.util.Arrays; import java.util.Collection; @@ -34,6 +35,7 @@ import javax.annotation.Nullable; * @see NestedSetBuilder */ @SuppressWarnings("unchecked") +@AutoCodec public final class NestedSet<E> implements Iterable<E> { private final Order order; @@ -41,7 +43,7 @@ public final class NestedSet<E> implements Iterable<E> { private byte[] memo; private static final byte[] LEAF_MEMO = {}; - static final Object[] EMPTY_CHILDREN = {}; + @AutoCodec static final Object[] EMPTY_CHILDREN = {}; /** * Construct an empty NestedSet. Should only be called by Order's class initializer. @@ -135,6 +137,7 @@ public final class NestedSet<E> implements Iterable<E> { } // Only used by deserialization + @AutoCodec.Instantiator NestedSet(Order order, Object children) { this.order = order; this.children = children; diff --git a/src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSetCodec.java b/src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSetCodecDisabled.java index c564f32f19..a8d6a796c9 100644 --- a/src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSetCodec.java +++ b/src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSetCodecDisabled.java @@ -23,6 +23,7 @@ import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec; import com.google.devtools.build.lib.skyframe.serialization.SerializationConstants; import com.google.devtools.build.lib.skyframe.serialization.SerializationContext; import com.google.devtools.build.lib.skyframe.serialization.SerializationException; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.protobuf.ByteString; import com.google.protobuf.CodedInputStream; import com.google.protobuf.CodedOutputStream; @@ -40,8 +41,11 @@ import java.util.Map; * <p>Nested sets are serialized by sorting the sub-graph in topological order, then writing the * nodes in that order. As a node is written we remember its digest. When serializing a node higher * in the graph, we replace any edge to another nested set with its digest. + * + * <p>Currently not used in favor of an @{@link AutoCodec}-ed NestedSet. Disabled by just not ending + * in "Codec". */ -public class NestedSetCodec<T> implements ObjectCodec<NestedSet<T>> { +public class NestedSetCodecDisabled<T> implements ObjectCodec<NestedSet<T>> { private static final EnumCodec<Order> orderCodec = new EnumCodec<>(Order.class); @@ -203,8 +207,7 @@ public class NestedSetCodec<T> implements ObjectCodec<NestedSet<T>> { return (T) object; } - private static Collection<Object> getTopologicallySortedChildren( - NestedSet<?> nestedSet) { + private static Collection<Object> getTopologicallySortedChildren(NestedSet<?> nestedSet) { LinkedHashSet<Object> result = new LinkedHashSet<>(); dfs(result, nestedSet.rawChildren()); return result; |