aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-03-06 12:07:46 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-06 12:09:38 -0800
commitbbf251f9aac9bb7f362b903420e47ad4fa12d17c (patch)
tree2e0d00d85012cff9c39fade8b315017692451876 /src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java
parentb27ea3f30edb7e12b1bc6c66eb1b997f73cdc64d (diff)
Convert a bunch of non-AutoCodec classes to use @AutoCodec: BuildConfiguration, BuildOptions, CollectTargetsUnderDirectoryValue.
PiperOrigin-RevId: 188059815
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java48
1 files changed, 7 insertions, 41 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java
index 7383fdfe08..76dcaad029 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildOptions.java
@@ -23,10 +23,7 @@ import com.google.common.collect.ImmutableSortedMap;
import com.google.common.collect.Sets;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.runtime.proto.InvocationPolicyOuterClass.InvocationPolicy;
-import com.google.devtools.build.lib.skyframe.serialization.DeserializationContext;
-import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
-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.devtools.build.lib.util.Fingerprint;
import com.google.devtools.common.options.InvocationPolicyEnforcer;
import com.google.devtools.common.options.OptionDefinition;
@@ -34,9 +31,6 @@ import com.google.devtools.common.options.OptionsBase;
import com.google.devtools.common.options.OptionsClassProvider;
import com.google.devtools.common.options.OptionsParser;
import com.google.devtools.common.options.OptionsParsingException;
-import com.google.protobuf.CodedInputStream;
-import com.google.protobuf.CodedOutputStream;
-import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
@@ -51,9 +45,10 @@ import java.util.TreeMap;
import java.util.TreeSet;
import javax.annotation.Nullable;
-/**
- * Stores the command-line options from a set of configuration fragments.
- */
+/** Stores the command-line options from a set of configuration fragments. */
+// TODO(janakr): If overhead of FragmentOptions class names is too high, add constructor that just
+// takes fragments and gets names from them.
+@AutoCodec
public final class BuildOptions implements Cloneable, Serializable {
private static final Comparator<Class<? extends FragmentOptions>>
lexicalFragmentOptionsComparator = Comparator.comparing(Class::getName);
@@ -297,8 +292,8 @@ public final class BuildOptions implements Cloneable, Serializable {
*/
private final ImmutableMap<Class<? extends FragmentOptions>, FragmentOptions> fragmentOptionsMap;
- private BuildOptions(
- ImmutableMap<Class<? extends FragmentOptions>, FragmentOptions> fragmentOptionsMap) {
+ @AutoCodec.VisibleForSerialization
+ BuildOptions(ImmutableMap<Class<? extends FragmentOptions>, FragmentOptions> fragmentOptionsMap) {
this.fragmentOptionsMap = fragmentOptionsMap;
}
@@ -440,33 +435,4 @@ public final class BuildOptions implements Cloneable, Serializable {
return toReturn.toString();
}
}
-
- private static class BuildOptionsCodec implements ObjectCodec<BuildOptions> {
- @Override
- public Class<BuildOptions> getEncodedClass() {
- return BuildOptions.class;
- }
-
- @Override
- public void serialize(
- SerializationContext context, BuildOptions buildOptions, CodedOutputStream codedOut)
- throws IOException, SerializationException {
- Collection<FragmentOptions> fragmentOptions = buildOptions.getOptions();
- codedOut.writeInt32NoTag(fragmentOptions.size());
- for (FragmentOptions options : buildOptions.getOptions()) {
- context.serialize(options, codedOut);
- }
- }
-
- @Override
- public BuildOptions deserialize(DeserializationContext context, CodedInputStream codedIn)
- throws IOException, SerializationException {
- BuildOptions.Builder builder = BuildOptions.builder();
- int length = codedIn.readInt32();
- for (int i = 0; i < length; ++i) {
- builder.add(context.deserialize(codedIn));
- }
- return builder.build();
- }
- }
}