diff options
Diffstat (limited to 'java/src/main/java/com/google/protobuf/nano/UnknownFieldData.java')
-rw-r--r-- | java/src/main/java/com/google/protobuf/nano/UnknownFieldData.java | 63 |
1 files changed, 38 insertions, 25 deletions
diff --git a/java/src/main/java/com/google/protobuf/nano/UnknownFieldData.java b/java/src/main/java/com/google/protobuf/nano/UnknownFieldData.java index 833ed2a..2032e1a 100644 --- a/java/src/main/java/com/google/protobuf/nano/UnknownFieldData.java +++ b/java/src/main/java/com/google/protobuf/nano/UnknownFieldData.java @@ -30,42 +30,55 @@ package com.google.protobuf.nano; +import java.io.IOException; import java.util.Arrays; /** - * Stores unknown fields. These might be extensions or fields that the generated API doesn't - * know about yet. + * Stores unknown fields. These might be extensions or fields that the generated + * API doesn't know about yet. * * @author bduff@google.com (Brian Duff) */ -public final class UnknownFieldData { +final class UnknownFieldData { - final int tag; - final byte[] bytes; + final int tag; + final byte[] bytes; - UnknownFieldData(int tag, byte[] bytes) { - this.tag = tag; - this.bytes = bytes; - } + UnknownFieldData(int tag, byte[] bytes) { + this.tag = tag; + this.bytes = bytes; + } - @Override - public boolean equals(Object o) { - if (o == this) { - return true; + int computeSerializedSize() { + int size = 0; + size += CodedOutputByteBufferNano.computeRawVarint32Size(tag); + size += bytes.length; + return size; } - if (!(o instanceof UnknownFieldData)) { - return false; + + void writeTo(CodedOutputByteBufferNano output) throws IOException { + output.writeRawVarint32(tag); + output.writeRawBytes(bytes); } - UnknownFieldData other = (UnknownFieldData) o; - return tag == other.tag && Arrays.equals(bytes, other.bytes); - } + @Override + public boolean equals(Object o) { + if (o == this) { + return true; + } + if (!(o instanceof UnknownFieldData)) { + return false; + } - @Override - public int hashCode() { - int result = 17; - result = 31 * result + tag; - result = 31 * result + Arrays.hashCode(bytes); - return result; - } + UnknownFieldData other = (UnknownFieldData) o; + return tag == other.tag && Arrays.equals(bytes, other.bytes); + } + + @Override + public int hashCode() { + int result = 17; + result = 31 * result + tag; + result = 31 * result + Arrays.hashCode(bytes); + return result; + } } |