diff options
author | janakr <janakr@google.com> | 2018-03-06 12:07:46 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-03-06 12:09:38 -0800 |
commit | bbf251f9aac9bb7f362b903420e47ad4fa12d17c (patch) | |
tree | 2e0d00d85012cff9c39fade8b315017692451876 /src/main/java/com/google/devtools/build/lib/rules/apple | |
parent | b27ea3f30edb7e12b1bc6c66eb1b997f73cdc64d (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/rules/apple')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java | 73 |
1 files changed, 11 insertions, 62 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java b/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java index a3085525a0..4082f1cf41 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java @@ -21,17 +21,12 @@ import com.google.common.collect.ComparisonChain; import com.google.common.collect.ImmutableList; import com.google.common.collect.Ordering; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; -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.autocodec.AutoCodec; import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; import com.google.devtools.build.lib.skylarkinterface.SkylarkPrinter; import com.google.devtools.build.lib.skylarkinterface.SkylarkValue; -import com.google.protobuf.CodedInputStream; -import com.google.protobuf.CodedOutputStream; -import java.io.IOException; import java.util.ArrayList; import java.util.Objects; import java.util.regex.Matcher; @@ -85,6 +80,7 @@ import javax.annotation.Nullable; + "1.2.3.4." ) @Immutable +@AutoCodec public final class DottedVersion implements Comparable<DottedVersion>, SkylarkValue { private static final Splitter DOT_SPLITTER = Splitter.on('.'); private static final Pattern COMPONENT_PATTERN = Pattern.compile("(\\d+)(?:([a-z]+)(\\d*))?"); @@ -155,10 +151,11 @@ public final class DottedVersion implements Comparable<DottedVersion>, SkylarkVa private final String stringRepresentation; private final int numOriginalComponents; - private DottedVersion(ImmutableList<Component> components, String version, - int numOriginalComponents) { + @AutoCodec.VisibleForSerialization + DottedVersion( + ImmutableList<Component> components, String stringRepresentation, int numOriginalComponents) { this.components = components; - this.stringRepresentation = version; + this.stringRepresentation = stringRepresentation; this.numOriginalComponents = numOriginalComponents; } @@ -262,44 +259,16 @@ public final class DottedVersion implements Comparable<DottedVersion>, SkylarkVa printer.append(stringRepresentation); } - private static class DottedVersionCodec implements ObjectCodec<DottedVersion> { - @Override - public Class<DottedVersion> getEncodedClass() { - return DottedVersion.class; - } - - @Override - public void serialize( - SerializationContext context, DottedVersion obj, CodedOutputStream codedOut) - throws IOException { - codedOut.writeInt32NoTag(obj.components.size()); - for (Component component : obj.components) { - component.serialize(codedOut); - } - codedOut.writeStringNoTag(obj.stringRepresentation); - codedOut.writeInt32NoTag(obj.numOriginalComponents); - } - - @Override - public DottedVersion deserialize(DeserializationContext context, CodedInputStream codedIn) - throws IOException { - int numComponents = codedIn.readInt32(); - // TODO(janakr: Presize this if/when https://github.com/google/guava/issues/196 is resolved. - ImmutableList.Builder<Component> components = ImmutableList.builder(); - for (int i = 0; i < numComponents; i++) { - components.add(Component.deserialize(codedIn)); - } - return new DottedVersion(components.build(), codedIn.readString(), codedIn.readInt32()); - } - } - - private static final class Component implements Comparable<Component> { + @AutoCodec.VisibleForSerialization + @AutoCodec + static final class Component implements Comparable<Component> { private final int firstNumber; @Nullable private final String alphaSequence; private final int secondNumber; private final String stringRepresentation; - public Component( + @AutoCodec.VisibleForSerialization + Component( int firstNumber, @Nullable String alphaSequence, int secondNumber, @@ -340,25 +309,5 @@ public final class DottedVersion implements Comparable<DottedVersion>, SkylarkVa public String toString() { return stringRepresentation; } - - void serialize(CodedOutputStream out) throws IOException { - if (alphaSequence == null) { - out.writeBoolNoTag(false); - } else { - out.writeBoolNoTag(true); - out.writeStringNoTag(alphaSequence); - } - out.writeInt32NoTag(firstNumber); - out.writeInt32NoTag(secondNumber); - out.writeStringNoTag(stringRepresentation); - } - - static Component deserialize(CodedInputStream in) throws IOException { - String alphaSequence = null; - if (in.readBool()) { - alphaSequence = in.readString(); - } - return new Component(in.readInt32(), alphaSequence, in.readInt32(), in.readString()); - } } } |