aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/collect
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-04-05 14:19:53 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-04-05 14:21:48 -0700
commit204779650039a8244f72d99dfb8d415547c09cff (patch)
treed6ebb8f2f4406abd048e10832c5c9741cfd86356 /src/main/java/com/google/devtools/build/lib/collect
parent2660ffe3c9303466d86fff4643c0c1b5e34a8061 (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/BUILD3
-rw-r--r--src/main/java/com/google/devtools/build/lib/collect/nestedset/NestedSet.java5
-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;