| Index: third_party/protobuf/java/core/src/main/java/com/google/protobuf/GeneratedMessage.java
|
| diff --git a/third_party/protobuf/java/src/main/java/com/google/protobuf/GeneratedMessage.java b/third_party/protobuf/java/core/src/main/java/com/google/protobuf/GeneratedMessage.java
|
| similarity index 94%
|
| rename from third_party/protobuf/java/src/main/java/com/google/protobuf/GeneratedMessage.java
|
| rename to third_party/protobuf/java/core/src/main/java/com/google/protobuf/GeneratedMessage.java
|
| index d84fa75c5110f72d4223d6f39a762d60bf525b39..790cb622a7eb84de07af5a1fad1ac5a2cf12d59a 100644
|
| --- a/third_party/protobuf/java/src/main/java/com/google/protobuf/GeneratedMessage.java
|
| +++ b/third_party/protobuf/java/core/src/main/java/com/google/protobuf/GeneratedMessage.java
|
| @@ -36,15 +36,13 @@ import com.google.protobuf.Descriptors.EnumValueDescriptor;
|
| import com.google.protobuf.Descriptors.FieldDescriptor;
|
| import com.google.protobuf.Descriptors.FileDescriptor;
|
| import com.google.protobuf.Descriptors.OneofDescriptor;
|
| -import com.google.protobuf.GeneratedMessageLite.ExtendableMessage;
|
| -import com.google.protobuf.GeneratedMessageLite.GeneratedExtension;
|
|
|
| import java.io.IOException;
|
| +import java.io.InputStream;
|
| import java.io.ObjectStreamException;
|
| import java.io.Serializable;
|
| import java.lang.reflect.InvocationTargetException;
|
| import java.lang.reflect.Method;
|
| -import java.lang.reflect.Type;
|
| import java.util.ArrayList;
|
| import java.util.Collections;
|
| import java.util.Iterator;
|
| @@ -82,6 +80,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| unknownFields = builder.getUnknownFields();
|
| }
|
|
|
| + @Override
|
| public Parser<? extends GeneratedMessage> getParserForType() {
|
| throw new UnsupportedOperationException(
|
| "This is supposed to be overridden by subclasses.");
|
| @@ -104,7 +103,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| */
|
| protected abstract FieldAccessorTable internalGetFieldAccessorTable();
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public Descriptor getDescriptorForType() {
|
| return internalGetFieldAccessorTable().descriptor;
|
| }
|
| @@ -193,7 +192,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| return true;
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public Map<FieldDescriptor, Object> getAllFields() {
|
| return Collections.unmodifiableMap(
|
| getAllFieldsMutable(/* getBytesForString = */ false));
|
| @@ -214,22 +213,22 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| getAllFieldsMutable(/* getBytesForString = */ true));
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public boolean hasOneof(final OneofDescriptor oneof) {
|
| return internalGetFieldAccessorTable().getOneof(oneof).has(this);
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public FieldDescriptor getOneofFieldDescriptor(final OneofDescriptor oneof) {
|
| return internalGetFieldAccessorTable().getOneof(oneof).get(this);
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public boolean hasField(final FieldDescriptor field) {
|
| return internalGetFieldAccessorTable().getField(field).has(this);
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public Object getField(final FieldDescriptor field) {
|
| return internalGetFieldAccessorTable().getField(field).get(this);
|
| }
|
| @@ -246,19 +245,19 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| return internalGetFieldAccessorTable().getField(field).getRaw(this);
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public int getRepeatedFieldCount(final FieldDescriptor field) {
|
| return internalGetFieldAccessorTable().getField(field)
|
| .getRepeatedCount(this);
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public Object getRepeatedField(final FieldDescriptor field, final int index) {
|
| return internalGetFieldAccessorTable().getField(field)
|
| .getRepeated(this, index);
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public UnknownFieldSet getUnknownFields() {
|
| throw new UnsupportedOperationException(
|
| "This is supposed to be overridden by subclasses.");
|
| @@ -276,6 +275,60 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| return unknownFields.mergeFieldFrom(tag, input);
|
| }
|
|
|
| + protected static <M extends Message> M parseWithIOException(Parser<M> parser, InputStream input)
|
| + throws IOException {
|
| + try {
|
| + return parser.parseFrom(input);
|
| + } catch (InvalidProtocolBufferException e) {
|
| + throw e.unwrapIOException();
|
| + }
|
| + }
|
| +
|
| + protected static <M extends Message> M parseWithIOException(Parser<M> parser, InputStream input,
|
| + ExtensionRegistryLite extensions) throws IOException {
|
| + try {
|
| + return parser.parseFrom(input, extensions);
|
| + } catch (InvalidProtocolBufferException e) {
|
| + throw e.unwrapIOException();
|
| + }
|
| + }
|
| +
|
| + protected static <M extends Message> M parseWithIOException(Parser<M> parser,
|
| + CodedInputStream input) throws IOException {
|
| + try {
|
| + return parser.parseFrom(input);
|
| + } catch (InvalidProtocolBufferException e) {
|
| + throw e.unwrapIOException();
|
| + }
|
| + }
|
| +
|
| + protected static <M extends Message> M parseWithIOException(Parser<M> parser,
|
| + CodedInputStream input, ExtensionRegistryLite extensions) throws IOException {
|
| + try {
|
| + return parser.parseFrom(input, extensions);
|
| + } catch (InvalidProtocolBufferException e) {
|
| + throw e.unwrapIOException();
|
| + }
|
| + }
|
| +
|
| + protected static <M extends Message> M parseDelimitedWithIOException(Parser<M> parser,
|
| + InputStream input) throws IOException {
|
| + try {
|
| + return parser.parseDelimitedFrom(input);
|
| + } catch (InvalidProtocolBufferException e) {
|
| + throw e.unwrapIOException();
|
| + }
|
| + }
|
| +
|
| + protected static <M extends Message> M parseDelimitedWithIOException(Parser<M> parser,
|
| + InputStream input, ExtensionRegistryLite extensions) throws IOException {
|
| + try {
|
| + return parser.parseDelimitedFrom(input, extensions);
|
| + } catch (InvalidProtocolBufferException e) {
|
| + throw e.unwrapIOException();
|
| + }
|
| + }
|
| +
|
| @Override
|
| public void writeTo(final CodedOutputStream output) throws IOException {
|
| MessageReflection.writeMessageTo(this, getAllFieldsRaw(), output, false);
|
| @@ -328,7 +381,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| }
|
|
|
| @SuppressWarnings("unchecked")
|
| - public abstract static class Builder <BuilderType extends Builder>
|
| + public abstract static class Builder <BuilderType extends Builder<BuilderType>>
|
| extends AbstractMessage.Builder<BuilderType> {
|
|
|
| private BuilderParent builderParent;
|
| @@ -392,6 +445,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| * Called by the initialization and clear code paths to allow subclasses to
|
| * reset any of their builtin fields back to the initial values.
|
| */
|
| + @Override
|
| public BuilderType clear() {
|
| unknownFields = UnknownFieldSet.getDefaultInstance();
|
| onChanged();
|
| @@ -405,12 +459,12 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| */
|
| protected abstract FieldAccessorTable internalGetFieldAccessorTable();
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public Descriptor getDescriptorForType() {
|
| return internalGetFieldAccessorTable().descriptor;
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public Map<FieldDescriptor, Object> getAllFields() {
|
| return Collections.unmodifiableMap(getAllFieldsMutable());
|
| }
|
| @@ -458,39 +512,38 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| return result;
|
| }
|
|
|
| - public Message.Builder newBuilderForField(
|
| - final FieldDescriptor field) {
|
| + @Override
|
| + public Message.Builder newBuilderForField(final FieldDescriptor field) {
|
| return internalGetFieldAccessorTable().getField(field).newBuilder();
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public Message.Builder getFieldBuilder(final FieldDescriptor field) {
|
| return internalGetFieldAccessorTable().getField(field).getBuilder(this);
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| - public Message.Builder getRepeatedFieldBuilder(final FieldDescriptor field,
|
| - int index) {
|
| + @Override
|
| + public Message.Builder getRepeatedFieldBuilder(final FieldDescriptor field, int index) {
|
| return internalGetFieldAccessorTable().getField(field).getRepeatedBuilder(
|
| this, index);
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public boolean hasOneof(final OneofDescriptor oneof) {
|
| return internalGetFieldAccessorTable().getOneof(oneof).has(this);
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public FieldDescriptor getOneofFieldDescriptor(final OneofDescriptor oneof) {
|
| return internalGetFieldAccessorTable().getOneof(oneof).get(this);
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public boolean hasField(final FieldDescriptor field) {
|
| return internalGetFieldAccessorTable().getField(field).has(this);
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public Object getField(final FieldDescriptor field) {
|
| Object object = internalGetFieldAccessorTable().getField(field).get(this);
|
| if (field.isRepeated()) {
|
| @@ -502,52 +555,52 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| }
|
| }
|
|
|
| - public BuilderType setField(final FieldDescriptor field,
|
| - final Object value) {
|
| + @Override
|
| + public BuilderType setField(final FieldDescriptor field, final Object value) {
|
| internalGetFieldAccessorTable().getField(field).set(this, value);
|
| return (BuilderType) this;
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public BuilderType clearField(final FieldDescriptor field) {
|
| internalGetFieldAccessorTable().getField(field).clear(this);
|
| return (BuilderType) this;
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public BuilderType clearOneof(final OneofDescriptor oneof) {
|
| internalGetFieldAccessorTable().getOneof(oneof).clear(this);
|
| return (BuilderType) this;
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public int getRepeatedFieldCount(final FieldDescriptor field) {
|
| return internalGetFieldAccessorTable().getField(field)
|
| .getRepeatedCount(this);
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| - public Object getRepeatedField(final FieldDescriptor field,
|
| - final int index) {
|
| + @Override
|
| + public Object getRepeatedField(final FieldDescriptor field, final int index) {
|
| return internalGetFieldAccessorTable().getField(field)
|
| .getRepeated(this, index);
|
| }
|
|
|
| - public BuilderType setRepeatedField(final FieldDescriptor field,
|
| - final int index, final Object value) {
|
| + @Override
|
| + public BuilderType setRepeatedField(
|
| + final FieldDescriptor field, final int index, final Object value) {
|
| internalGetFieldAccessorTable().getField(field)
|
| .setRepeated(this, index, value);
|
| return (BuilderType) this;
|
| }
|
|
|
| - public BuilderType addRepeatedField(final FieldDescriptor field,
|
| - final Object value) {
|
| + @Override
|
| + public BuilderType addRepeatedField(final FieldDescriptor field, final Object value) {
|
| internalGetFieldAccessorTable().getField(field).addRepeated(this, value);
|
| return (BuilderType) this;
|
| }
|
|
|
| - public BuilderType setUnknownFields(
|
| - final UnknownFieldSet unknownFields) {
|
| + @Override
|
| + public BuilderType setUnknownFields(final UnknownFieldSet unknownFields) {
|
| this.unknownFields = unknownFields;
|
| onChanged();
|
| return (BuilderType) this;
|
| @@ -564,7 +617,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| return (BuilderType) this;
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public boolean isInitialized() {
|
| for (final FieldDescriptor field : getDescriptorForType().getFields()) {
|
| // Check that all required fields are present.
|
| @@ -594,7 +647,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| return true;
|
| }
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public final UnknownFieldSet getUnknownFields() {
|
| return unknownFields;
|
| }
|
| @@ -618,7 +671,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| */
|
| private class BuilderParentImpl implements BuilderParent {
|
|
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public void markDirty() {
|
| onChanged();
|
| }
|
| @@ -667,7 +720,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| "No map fields found in " + getClass().getName());
|
| }
|
|
|
| - /** Like {@link internalGetMapField} but return a mutable version. */
|
| + /** Like {@link #internalGetMapField} but return a mutable version. */
|
| @SuppressWarnings({"unused", "rawtypes"})
|
| protected MapField internalGetMutableMapField(int fieldNumber) {
|
| // Note that we can't use descriptor names here because this method will
|
| @@ -683,6 +736,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| public interface ExtendableMessageOrBuilder<
|
| MessageType extends ExtendableMessage> extends MessageOrBuilder {
|
| // Re-define for return type covariance.
|
| + @Override
|
| Message getDefaultInstanceForType();
|
|
|
| /** Check if a singular extension is present. */
|
| @@ -743,6 +797,8 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| extends GeneratedMessage
|
| implements ExtendableMessageOrBuilder<MessageType> {
|
|
|
| + private static final long serialVersionUID = 1L;
|
| +
|
| private final FieldSet<FieldDescriptor> extensions;
|
|
|
| protected ExtendableMessage() {
|
| @@ -769,9 +825,8 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| }
|
|
|
| /** Check if a singular extension is present. */
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| - public final <Type> boolean hasExtension(
|
| - final ExtensionLite<MessageType, Type> extensionLite) {
|
| + @Override
|
| + public final <Type> boolean hasExtension(final ExtensionLite<MessageType, Type> extensionLite) {
|
| Extension<MessageType, Type> extension = checkNotLite(extensionLite);
|
|
|
| verifyExtensionContainingType(extension);
|
| @@ -779,7 +834,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| }
|
|
|
| /** Get the number of elements in a repeated extension. */
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public final <Type> int getExtensionCount(
|
| final ExtensionLite<MessageType, List<Type>> extensionLite) {
|
| Extension<MessageType, List<Type>> extension = checkNotLite(extensionLite);
|
| @@ -790,10 +845,9 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| }
|
|
|
| /** Get the value of an extension. */
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| @SuppressWarnings("unchecked")
|
| - public final <Type> Type getExtension(
|
| - final ExtensionLite<MessageType, Type> extensionLite) {
|
| + public final <Type> Type getExtension(final ExtensionLite<MessageType, Type> extensionLite) {
|
| Extension<MessageType, Type> extension = checkNotLite(extensionLite);
|
|
|
| verifyExtensionContainingType(extension);
|
| @@ -815,11 +869,10 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| }
|
|
|
| /** Get one element of a repeated extension. */
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| @SuppressWarnings("unchecked")
|
| public final <Type> Type getExtension(
|
| - final ExtensionLite<MessageType, List<Type>> extensionLite,
|
| - final int index) {
|
| + final ExtensionLite<MessageType, List<Type>> extensionLite, final int index) {
|
| Extension<MessageType, List<Type>> extension = checkNotLite(extensionLite);
|
|
|
| verifyExtensionContainingType(extension);
|
| @@ -967,7 +1020,9 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| verifyContainingType(field);
|
| final Object value = extensions.getField(field);
|
| if (value == null) {
|
| - if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
|
| + if (field.isRepeated()) {
|
| + return Collections.emptyList();
|
| + } else if (field.getJavaType() == FieldDescriptor.JavaType.MESSAGE) {
|
| // Lacking an ExtensionRegistry, we have no way to determine the
|
| // extension's real type, so we return a DynamicMessage.
|
| return DynamicMessage.getDefaultInstance(field.getMessageType());
|
| @@ -1051,7 +1106,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| @SuppressWarnings("unchecked")
|
| public abstract static class ExtendableBuilder<
|
| MessageType extends ExtendableMessage,
|
| - BuilderType extends ExtendableBuilder>
|
| + BuilderType extends ExtendableBuilder<MessageType, BuilderType>>
|
| extends Builder<BuilderType>
|
| implements ExtendableMessageOrBuilder<MessageType> {
|
|
|
| @@ -1103,9 +1158,8 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| }
|
|
|
| /** Check if a singular extension is present. */
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| - public final <Type> boolean hasExtension(
|
| - final ExtensionLite<MessageType, Type> extensionLite) {
|
| + @Override
|
| + public final <Type> boolean hasExtension(final ExtensionLite<MessageType, Type> extensionLite) {
|
| Extension<MessageType, Type> extension = checkNotLite(extensionLite);
|
|
|
| verifyExtensionContainingType(extension);
|
| @@ -1113,7 +1167,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| }
|
|
|
| /** Get the number of elements in a repeated extension. */
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public final <Type> int getExtensionCount(
|
| final ExtensionLite<MessageType, List<Type>> extensionLite) {
|
| Extension<MessageType, List<Type>> extension = checkNotLite(extensionLite);
|
| @@ -1124,9 +1178,8 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| }
|
|
|
| /** Get the value of an extension. */
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| - public final <Type> Type getExtension(
|
| - final ExtensionLite<MessageType, Type> extensionLite) {
|
| + @Override
|
| + public final <Type> Type getExtension(final ExtensionLite<MessageType, Type> extensionLite) {
|
| Extension<MessageType, Type> extension = checkNotLite(extensionLite);
|
|
|
| verifyExtensionContainingType(extension);
|
| @@ -1148,10 +1201,9 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| }
|
|
|
| /** Get one element of a repeated extension. */
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public final <Type> Type getExtension(
|
| - final ExtensionLite<MessageType, List<Type>> extensionLite,
|
| - final int index) {
|
| + final ExtensionLite<MessageType, List<Type>> extensionLite, final int index) {
|
| Extension<MessageType, List<Type>> extension = checkNotLite(extensionLite);
|
|
|
| verifyExtensionContainingType(extension);
|
| @@ -1404,10 +1456,9 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| // obtained.
|
| return new GeneratedExtension<ContainingType, Type>(
|
| new CachedDescriptorRetriever() {
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| + @Override
|
| public FieldDescriptor loadDescriptor() {
|
| - return scope.getDescriptorForType().getExtensions()
|
| - .get(descriptorIndex);
|
| + return scope.getDescriptorForType().getExtensions().get(descriptorIndex);
|
| }
|
| },
|
| singularType,
|
| @@ -1435,6 +1486,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| private volatile FieldDescriptor descriptor;
|
| protected abstract FieldDescriptor loadDescriptor();
|
|
|
| + @Override
|
| public FieldDescriptor getDescriptor() {
|
| if (descriptor == null) {
|
| synchronized (this) {
|
| @@ -1464,6 +1516,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| // obtained.
|
| return new GeneratedExtension<ContainingType, Type>(
|
| new CachedDescriptorRetriever() {
|
| + @Override
|
| protected FieldDescriptor loadDescriptor() {
|
| return scope.getDescriptorForType().findFieldByName(name);
|
| }
|
| @@ -1490,17 +1543,18 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| // used to obtain the extension's FieldDescriptor.
|
| return new GeneratedExtension<ContainingType, Type>(
|
| new CachedDescriptorRetriever() {
|
| + @Override
|
| protected FieldDescriptor loadDescriptor() {
|
| try {
|
| - Class clazz =
|
| - singularType.getClassLoader().loadClass(descriptorOuterClass);
|
| - FileDescriptor file =
|
| - (FileDescriptor) clazz.getField("descriptor").get(null);
|
| + Class clazz = singularType.getClassLoader().loadClass(descriptorOuterClass);
|
| + FileDescriptor file = (FileDescriptor) clazz.getField("descriptor").get(null);
|
| return file.findExtensionByName(extensionName);
|
| } catch (Exception e) {
|
| throw new RuntimeException(
|
| - "Cannot load descriptors: " + descriptorOuterClass +
|
| - " is not a valid descriptor class name", e);
|
| + "Cannot load descriptors: "
|
| + + descriptorOuterClass
|
| + + " is not a valid descriptor class name",
|
| + e);
|
| }
|
| }
|
| },
|
| @@ -1582,12 +1636,13 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| if (descriptorRetriever != null) {
|
| throw new IllegalStateException("Already initialized.");
|
| }
|
| - descriptorRetriever = new ExtensionDescriptorRetriever() {
|
| - //@Override (Java 1.6 override semantics, but we must support 1.5)
|
| - public FieldDescriptor getDescriptor() {
|
| - return descriptor;
|
| - }
|
| - };
|
| + descriptorRetriever =
|
| + new ExtensionDescriptorRetriever() {
|
| + @Override
|
| + public FieldDescriptor getDescriptor() {
|
| + return descriptor;
|
| + }
|
| + };
|
| }
|
|
|
| private ExtensionDescriptorRetriever descriptorRetriever;
|
| @@ -1597,6 +1652,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| private final Method enumGetValueDescriptor;
|
| private final ExtensionType extensionType;
|
|
|
| + @Override
|
| public FieldDescriptor getDescriptor() {
|
| if (descriptorRetriever == null) {
|
| throw new IllegalStateException(
|
| @@ -1609,10 +1665,12 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| * If the extension is an embedded message or group, returns the default
|
| * instance of the message.
|
| */
|
| + @Override
|
| public Message getMessageDefaultInstance() {
|
| return messageDefaultInstance;
|
| }
|
|
|
| + @Override
|
| protected ExtensionType getExtensionType() {
|
| return extensionType;
|
| }
|
| @@ -1623,7 +1681,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| * EnumValueDescriptors but the native accessors use the generated enum
|
| * type.
|
| */
|
| - // @Override
|
| + @Override
|
| @SuppressWarnings("unchecked")
|
| protected Object fromReflectionType(final Object value) {
|
| FieldDescriptor descriptor = getDescriptor();
|
| @@ -1648,7 +1706,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| * Like {@link #fromReflectionType(Object)}, but if the type is a repeated
|
| * type, this converts a single element.
|
| */
|
| - // @Override
|
| + @Override
|
| protected Object singularFromReflectionType(final Object value) {
|
| FieldDescriptor descriptor = getDescriptor();
|
| switch (descriptor.getJavaType()) {
|
| @@ -1672,7 +1730,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| * EnumValueDescriptors but the native accessors use the generated enum
|
| * type.
|
| */
|
| - // @Override
|
| + @Override
|
| @SuppressWarnings("unchecked")
|
| protected Object toReflectionType(final Object value) {
|
| FieldDescriptor descriptor = getDescriptor();
|
| @@ -1696,7 +1754,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| * Like {@link #toReflectionType(Object)}, but if the type is a repeated
|
| * type, this converts a single element.
|
| */
|
| - // @Override
|
| + @Override
|
| protected Object singularToReflectionType(final Object value) {
|
| FieldDescriptor descriptor = getDescriptor();
|
| switch (descriptor.getJavaType()) {
|
| @@ -1707,22 +1765,22 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| }
|
| }
|
|
|
| - // @Override
|
| + @Override
|
| public int getNumber() {
|
| return getDescriptor().getNumber();
|
| }
|
|
|
| - // @Override
|
| + @Override
|
| public WireFormat.FieldType getLiteType() {
|
| return getDescriptor().getLiteType();
|
| }
|
|
|
| - // @Override
|
| + @Override
|
| public boolean isRepeated() {
|
| return getDescriptor().isRepeated();
|
| }
|
|
|
| - // @Override
|
| + @Override
|
| @SuppressWarnings("unchecked")
|
| public Type getDefaultValue() {
|
| if (isRepeated()) {
|
| @@ -2072,49 +2130,57 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| return ((Internal.EnumLite) invokeOrDie(caseMethodBuilder, builder)).getNumber();
|
| }
|
|
|
| + @Override
|
| public Object get(final GeneratedMessage message) {
|
| return invokeOrDie(getMethod, message);
|
| }
|
| + @Override
|
| public Object get(GeneratedMessage.Builder builder) {
|
| return invokeOrDie(getMethodBuilder, builder);
|
| }
|
| + @Override
|
| public Object getRaw(final GeneratedMessage message) {
|
| return get(message);
|
| }
|
| + @Override
|
| public Object getRaw(GeneratedMessage.Builder builder) {
|
| return get(builder);
|
| }
|
| + @Override
|
| public void set(final Builder builder, final Object value) {
|
| invokeOrDie(setMethod, builder, value);
|
| }
|
| - public Object getRepeated(final GeneratedMessage message,
|
| - final int index) {
|
| + @Override
|
| + public Object getRepeated(final GeneratedMessage message, final int index) {
|
| throw new UnsupportedOperationException(
|
| "getRepeatedField() called on a singular field.");
|
| }
|
| - public Object getRepeatedRaw(final GeneratedMessage message,
|
| - final int index) {
|
| + @Override
|
| + public Object getRepeatedRaw(final GeneratedMessage message, final int index) {
|
| throw new UnsupportedOperationException(
|
| "getRepeatedFieldRaw() called on a singular field.");
|
| }
|
| + @Override
|
| public Object getRepeated(GeneratedMessage.Builder builder, int index) {
|
| throw new UnsupportedOperationException(
|
| "getRepeatedField() called on a singular field.");
|
| }
|
| - public Object getRepeatedRaw(GeneratedMessage.Builder builder,
|
| - int index) {
|
| + @Override
|
| + public Object getRepeatedRaw(GeneratedMessage.Builder builder, int index) {
|
| throw new UnsupportedOperationException(
|
| "getRepeatedFieldRaw() called on a singular field.");
|
| }
|
| - public void setRepeated(final Builder builder, final int index,
|
| - final Object value) {
|
| + @Override
|
| + public void setRepeated(final Builder builder, final int index, final Object value) {
|
| throw new UnsupportedOperationException(
|
| "setRepeatedField() called on a singular field.");
|
| }
|
| + @Override
|
| public void addRepeated(final Builder builder, final Object value) {
|
| throw new UnsupportedOperationException(
|
| "addRepeatedField() called on a singular field.");
|
| }
|
| + @Override
|
| public boolean has(final GeneratedMessage message) {
|
| if (!hasHasMethod) {
|
| if (isOneofField) {
|
| @@ -2124,6 +2190,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| }
|
| return (Boolean) invokeOrDie(hasMethod, message);
|
| }
|
| + @Override
|
| public boolean has(GeneratedMessage.Builder builder) {
|
| if (!hasHasMethod) {
|
| if (isOneofField) {
|
| @@ -2133,27 +2200,32 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| }
|
| return (Boolean) invokeOrDie(hasMethodBuilder, builder);
|
| }
|
| + @Override
|
| public int getRepeatedCount(final GeneratedMessage message) {
|
| throw new UnsupportedOperationException(
|
| "getRepeatedFieldSize() called on a singular field.");
|
| }
|
| + @Override
|
| public int getRepeatedCount(GeneratedMessage.Builder builder) {
|
| throw new UnsupportedOperationException(
|
| "getRepeatedFieldSize() called on a singular field.");
|
| }
|
| + @Override
|
| public void clear(final Builder builder) {
|
| invokeOrDie(clearMethod, builder);
|
| }
|
| + @Override
|
| public Message.Builder newBuilder() {
|
| throw new UnsupportedOperationException(
|
| "newBuilderForField() called on a non-Message type.");
|
| }
|
| + @Override
|
| public Message.Builder getBuilder(GeneratedMessage.Builder builder) {
|
| throw new UnsupportedOperationException(
|
| "getFieldBuilder() called on a non-Message type.");
|
| }
|
| - public Message.Builder getRepeatedBuilder(GeneratedMessage.Builder builder,
|
| - int index) {
|
| + @Override
|
| + public Message.Builder getRepeatedBuilder(GeneratedMessage.Builder builder, int index) {
|
| throw new UnsupportedOperationException(
|
| "getRepeatedFieldBuilder() called on a non-Message type.");
|
| }
|
| @@ -2197,18 +2269,23 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| clearMethod = getMethodOrDie(builderClass, "clear" + camelCaseName);
|
| }
|
|
|
| + @Override
|
| public Object get(final GeneratedMessage message) {
|
| return invokeOrDie(getMethod, message);
|
| }
|
| + @Override
|
| public Object get(GeneratedMessage.Builder builder) {
|
| return invokeOrDie(getMethodBuilder, builder);
|
| }
|
| + @Override
|
| public Object getRaw(final GeneratedMessage message) {
|
| return get(message);
|
| }
|
| + @Override
|
| public Object getRaw(GeneratedMessage.Builder builder) {
|
| return get(builder);
|
| }
|
| + @Override
|
| public void set(final Builder builder, final Object value) {
|
| // Add all the elements individually. This serves two purposes:
|
| // 1) Verifies that each element has the correct type.
|
| @@ -2219,54 +2296,64 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| addRepeated(builder, element);
|
| }
|
| }
|
| - public Object getRepeated(final GeneratedMessage message,
|
| - final int index) {
|
| + @Override
|
| + public Object getRepeated(final GeneratedMessage message, final int index) {
|
| return invokeOrDie(getRepeatedMethod, message, index);
|
| }
|
| + @Override
|
| public Object getRepeated(GeneratedMessage.Builder builder, int index) {
|
| return invokeOrDie(getRepeatedMethodBuilder, builder, index);
|
| }
|
| + @Override
|
| public Object getRepeatedRaw(GeneratedMessage message, int index) {
|
| return getRepeated(message, index);
|
| }
|
| - public Object getRepeatedRaw(GeneratedMessage.Builder builder,
|
| - int index) {
|
| + @Override
|
| + public Object getRepeatedRaw(GeneratedMessage.Builder builder, int index) {
|
| return getRepeated(builder, index);
|
| }
|
| - public void setRepeated(final Builder builder,
|
| - final int index, final Object value) {
|
| + @Override
|
| + public void setRepeated(final Builder builder, final int index, final Object value) {
|
| invokeOrDie(setRepeatedMethod, builder, index, value);
|
| }
|
| + @Override
|
| public void addRepeated(final Builder builder, final Object value) {
|
| invokeOrDie(addRepeatedMethod, builder, value);
|
| }
|
| + @Override
|
| public boolean has(final GeneratedMessage message) {
|
| throw new UnsupportedOperationException(
|
| "hasField() called on a repeated field.");
|
| }
|
| + @Override
|
| public boolean has(GeneratedMessage.Builder builder) {
|
| throw new UnsupportedOperationException(
|
| "hasField() called on a repeated field.");
|
| }
|
| + @Override
|
| public int getRepeatedCount(final GeneratedMessage message) {
|
| return (Integer) invokeOrDie(getCountMethod, message);
|
| }
|
| + @Override
|
| public int getRepeatedCount(GeneratedMessage.Builder builder) {
|
| return (Integer) invokeOrDie(getCountMethodBuilder, builder);
|
| }
|
| + @Override
|
| public void clear(final Builder builder) {
|
| invokeOrDie(clearMethod, builder);
|
| }
|
| + @Override
|
| public Message.Builder newBuilder() {
|
| throw new UnsupportedOperationException(
|
| "newBuilderForField() called on a non-Message type.");
|
| }
|
| + @Override
|
| public Message.Builder getBuilder(GeneratedMessage.Builder builder) {
|
| throw new UnsupportedOperationException(
|
| "getFieldBuilder() called on a non-Message type.");
|
| }
|
| - public Message.Builder getRepeatedBuilder(GeneratedMessage.Builder builder,
|
| - int index) {
|
| + @Override
|
| + public Message.Builder getRepeatedBuilder(GeneratedMessage.Builder builder, int index) {
|
| throw new UnsupportedOperationException(
|
| "getRepeatedFieldBuilder() called on a non-Message type.");
|
| }
|
| @@ -2303,6 +2390,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| field.getNumber());
|
| }
|
|
|
| + @Override
|
| public Object get(GeneratedMessage message) {
|
| List result = new ArrayList();
|
| for (int i = 0; i < getRepeatedCount(message); i++) {
|
| @@ -2311,6 +2399,7 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| return Collections.unmodifiableList(result);
|
| }
|
|
|
| + @Override
|
| public Object get(Builder builder) {
|
| List result = new ArrayList();
|
| for (int i = 0; i < getRepeatedCount(builder); i++) {
|
| @@ -2319,14 +2408,17 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| return Collections.unmodifiableList(result);
|
| }
|
|
|
| + @Override
|
| public Object getRaw(GeneratedMessage message) {
|
| return get(message);
|
| }
|
|
|
| + @Override
|
| public Object getRaw(GeneratedMessage.Builder builder) {
|
| return get(builder);
|
| }
|
|
|
| + @Override
|
| public void set(Builder builder, Object value) {
|
| clear(builder);
|
| for (Object entry : (List) value) {
|
| @@ -2334,63 +2426,76 @@ public abstract class GeneratedMessage extends AbstractMessage
|
| }
|
| }
|
|
|
| + @Override
|
| public Object getRepeated(GeneratedMessage message, int index) {
|
| return getMapField(message).getList().get(index);
|
| }
|
|
|
| + @Override
|
| public Object getRepeated(Builder builder, int index) {
|
| return getMapField(builder).getList().get(index);
|
| }
|
|
|
| + @Override
|
| public Object getRepeatedRaw(GeneratedMessage message, int index) {
|
| return getRepeated(message, index);
|
| }
|
|
|
| + @Override
|
| public Object getRepeatedRaw(Builder builder, int index) {
|
| return getRepeated(builder, index);
|
| }
|
|
|
| + @Override
|
| public void setRepeated(Builder builder, int index, Object value) {
|
| getMutableMapField(builder).getMutableList().set(index, (Message) value);
|
| }
|
|
|
| + @Override
|
| public void addRepeated(Builder builder, Object value) {
|
| getMutableMapField(builder).getMutableList().add((Message) value);
|
| }
|
|
|
| + @Override
|
| public boolean has(GeneratedMessage message) {
|
| throw new UnsupportedOperationException(
|
| "hasField() is not supported for repeated fields.");
|
| }
|
|
|
| + @Override
|
| public boolean has(Builder builder) {
|
| throw new UnsupportedOperationException(
|
| "hasField() is not supported for repeated fields.");
|
| }
|
|
|
| + @Override
|
| public int getRepeatedCount(GeneratedMessage message) {
|
| return getMapField(message).getList().size();
|
| }
|
|
|
| + @Override
|
| public int getRepeatedCount(Builder builder) {
|
| return getMapField(builder).getList().size();
|
| }
|
|
|
| + @Override
|
| public void clear(Builder builder) {
|
| getMutableMapField(builder).getMutableList().clear();
|
| }
|
|
|
| + @Override
|
| public com.google.protobuf.Message.Builder newBuilder() {
|
| return mapEntryMessageDefaultInstance.newBuilderForType();
|
| }
|
|
|
| + @Override
|
| public com.google.protobuf.Message.Builder getBuilder(Builder builder) {
|
| throw new UnsupportedOperationException(
|
| "Nested builder not supported for map fields.");
|
| }
|
|
|
| - public com.google.protobuf.Message.Builder getRepeatedBuilder(
|
| - Builder builder, int index) {
|
| + @Override
|
| + public com.google.protobuf.Message.Builder getRepeatedBuilder(Builder builder, int index) {
|
| throw new UnsupportedOperationException(
|
| "Nested builder not supported for map fields.");
|
| }
|
|
|