diff options
author | shahan <shahan@google.com> | 2018-02-20 13:20:30 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-02-20 13:22:33 -0800 |
commit | 80a0633bbeef3f84ab6eb6513a5d36936cd1bdbb (patch) | |
tree | a4ce5b4d8422a6103d0c93fb6ed8db3ccd1f1c22 /src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java | |
parent | dd090a6e8825093e7e5364ed49f16ba68f0fe54c (diff) |
Adds ObjectCodecRegistry to {Des|S}erializationContext.
* AutoCodec now delegates to the registry.
* Adds getSuperclass logic for resolving a codec.
* Small cleanups for classes that break the registry.
TODO after this change:
* Explicit CODEC definitions are no longer needed and existing ones should be cleaned up.
* POLYMORPHIC is no longer be needed and should be cleaned up.
PiperOrigin-RevId: 186351845
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/apple/DottedVersion.java | 62 |
1 files changed, 30 insertions, 32 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 12e236c2fa..a3085525a0 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 @@ -262,38 +262,36 @@ public final class DottedVersion implements Comparable<DottedVersion>, SkylarkVa printer.append(stringRepresentation); } - public static final ObjectCodec<DottedVersion> CODEC = - new ObjectCodec<DottedVersion>() { - @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()); - } - - @Override - public Class<DottedVersion> getEncodedClass() { - return DottedVersion.class; - } - }; + 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> { private final int firstNumber; |