aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.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/BuildConfiguration.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/BuildConfiguration.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java55
1 files changed, 5 insertions, 50 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
index f9f3c40bc6..ce0a75a63b 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/config/BuildConfiguration.java
@@ -52,12 +52,7 @@ import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.packages.RuleClassProvider;
import com.google.devtools.build.lib.packages.Target;
-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.skyframe.serialization.strings.StringCodecs;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
@@ -75,9 +70,6 @@ import com.google.devtools.common.options.OptionEffectTag;
import com.google.devtools.common.options.OptionMetadataTag;
import com.google.devtools.common.options.OptionsParsingException;
import com.google.devtools.common.options.TriState;
-import com.google.protobuf.CodedInputStream;
-import com.google.protobuf.CodedOutputStream;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -118,6 +110,9 @@ import javax.annotation.Nullable;
"Data required for the analysis of a target that comes from targets that "
+ "depend on it and not targets that it depends on."
)
+// TODO(janakr): If overhead of fragments class names is too high, add constructor that just takes
+// fragments and gets names from them.
+@AutoCodec
public class BuildConfiguration implements BuildConfigurationInterface {
/**
* Sorts fragments by class name. This produces a stable order which, e.g., facilitates consistent
@@ -1244,10 +1239,8 @@ public class BuildConfiguration implements BuildConfigurationInterface {
return hashCode;
}
- /**
- * Returns map of all the fragments for this configuration.
- */
- public ImmutableMap<Class<? extends Fragment>, Fragment> getAllFragments() {
+ /** Returns map of all the fragments for this configuration. */
+ public ImmutableMap<Class<? extends Fragment>, Fragment> getFragmentsMap() {
return fragments;
}
@@ -2095,42 +2088,4 @@ public class BuildConfiguration implements BuildConfigurationInterface {
.setCpu(getCpu());
return GenericBuildEvent.protoChaining(this).setConfiguration(builder.build()).build();
}
-
- private static class BuildConfigurationCodec implements ObjectCodec<BuildConfiguration> {
- @Override
- public Class<BuildConfiguration> getEncodedClass() {
- return BuildConfiguration.class;
- }
-
- @Override
- public void serialize(
- SerializationContext context,
- BuildConfiguration obj,
- CodedOutputStream codedOut)
- throws SerializationException, IOException {
- context.serialize(obj.directories, codedOut);
- codedOut.writeInt32NoTag(obj.fragments.size());
- for (Fragment fragment : obj.fragments.values()) {
- context.serialize(fragment, codedOut);
- }
- context.serialize(obj.buildOptions, codedOut);
- StringCodecs.asciiOptimized().serialize(context, obj.repositoryName, codedOut);
- }
-
- @Override
- public BuildConfiguration deserialize(DeserializationContext context, CodedInputStream codedIn)
- throws SerializationException, IOException {
- BlazeDirectories blazeDirectories = context.deserialize(codedIn);
- int length = codedIn.readInt32();
- ImmutableSortedMap.Builder<Class<? extends Fragment>, Fragment> builder =
- new ImmutableSortedMap.Builder<>(lexicalFragmentSorter);
- for (int i = 0; i < length; ++i) {
- Fragment fragment = context.deserialize(codedIn);
- builder.put(fragment.getClass(), fragment);
- }
- BuildOptions options = context.deserialize(codedIn);
- String repositoryName = StringCodecs.asciiOptimized().deserialize(context, codedIn);
- return new BuildConfiguration(blazeDirectories, builder.build(), options, repositoryName);
- }
- }
}