diff --git a/protobuf-api/src/main/java/com/google/protobuf/DescriptorProtos.java b/protobuf-api/src/main/java/com/google/protobuf/DescriptorProtos.java index bc20823..fde59d3 100644 --- a/protobuf-api/src/main/java/com/google/protobuf/DescriptorProtos.java +++ b/protobuf-api/src/main/java/com/google/protobuf/DescriptorProtos.java @@ -4,6 +4,13 @@ // Protobuf Java Version: 3.25.5 package com.google.protobuf; +import java.io.IOException; +import java.io.OutputStream; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; + public final class DescriptorProtos { private DescriptorProtos() {} public static void registerAllExtensions( @@ -14428,14 +14435,181 @@ public interface FieldDescriptorProtoOrBuilder extends * * Protobuf type {@code google.protobuf.FieldDescriptorProto} */ - public static final class FieldDescriptorProto extends - com.google.protobuf.GeneratedMessageV3 implements + public static final class FieldDescriptorProto // @@protoc_insertion_point(message_implements:google.protobuf.FieldDescriptorProto) - FieldDescriptorProtoOrBuilder { + implements Message, FieldDescriptorProtoOrBuilder { + + protected UnknownFieldSet unknownFields = UnknownFieldSet.getDefaultInstance(); + + protected int memoizedHashCode = 0; + + @Override + public UnknownFieldSet getUnknownFields() { + return unknownFields; + } + + @Override + public int getRepeatedFieldCount(final Descriptors.FieldDescriptor field) { + return internalGetFieldAccessorTable().getField(field).getRepeatedCount(this); + } + + @Override + public Object getRepeatedField(final Descriptors.FieldDescriptor field, final int index) { + return internalGetFieldAccessorTable().getField(field).getRepeated(this, index); + } + + @Override + public boolean hasOneof(final Descriptors.OneofDescriptor oneof) { + return internalGetFieldAccessorTable().getOneof(oneof).has(this); + } + + @Override + public Descriptors.FieldDescriptor getOneofFieldDescriptor(final Descriptors.OneofDescriptor oneof) { + return internalGetFieldAccessorTable().getOneof(oneof).get(this); + } + + @Override + public boolean hasField(final Descriptors.FieldDescriptor field) { + return internalGetFieldAccessorTable().getField(field).has(this); + } + + @Override + public Object getField(final Descriptors.FieldDescriptor field) { + return internalGetFieldAccessorTable().getField(field).get(this); + } + + @Override + public Map getAllFields() { + return Collections.unmodifiableMap(getAllFieldsMutable(/* getBytesForString= */ false)); + } + + private Map getAllFieldsMutable(boolean getBytesForString) { + final TreeMap result = new TreeMap<>(); + final Descriptors.Descriptor descriptor = internalGetFieldAccessorTable().descriptor; + final List fields = descriptor.getFields(); + + for (int i = 0; i < fields.size(); i++) { + Descriptors.FieldDescriptor field = fields.get(i); + final Descriptors.OneofDescriptor oneofDescriptor = field.getContainingOneof(); + + /* + * If the field is part of a Oneof, then at maximum one field in the Oneof is set + * and it is not repeated. There is no need to iterate through the others. + */ + if (oneofDescriptor != null) { + // Skip other fields in the Oneof we know are not set + i += oneofDescriptor.getFieldCount() - 1; + if (!hasOneof(oneofDescriptor)) { + // If no field is set in the Oneof, skip all the fields in the Oneof + continue; + } + // Get the pointer to the only field which is set in the Oneof + field = getOneofFieldDescriptor(oneofDescriptor); + } else { + // If we are not in a Oneof, we need to check if the field is set and if it is repeated + if (field.isRepeated()) { + final List value = (List) getField(field); + if (!value.isEmpty()) { + result.put(field, value); + } + continue; + } + if (!hasField(field)) { + continue; + } + } + // Add the field to the map + if (getBytesForString && field.getJavaType() == Descriptors.FieldDescriptor.JavaType.STRING) { + result.put(field, getFieldRaw(field)); + } else { + result.put(field, getField(field)); + } + } + return result; + } + + Object getFieldRaw(final Descriptors.FieldDescriptor field) { + return internalGetFieldAccessorTable().getField(field).getRaw(this); + } + + @Override + public Descriptors.Descriptor getDescriptorForType() { + return internalGetFieldAccessorTable().descriptor; + } + + @Override + public ByteString toByteString() { + try { + final ByteString.CodedBuilder out = ByteString.newCodedBuilder(getSerializedSize()); + writeTo(out.getCodedOutput()); + return out.build(); + } catch (IOException e) { + throw new RuntimeException(getSerializingExceptionMessage("ByteString"), e); + } + } + + @Override + public byte[] toByteArray() { + try { + final byte[] result = new byte[getSerializedSize()]; + final CodedOutputStream output = CodedOutputStream.newInstance(result); + writeTo(output); + output.checkNoSpaceLeft(); + return result; + } catch (IOException e) { + throw new RuntimeException(getSerializingExceptionMessage("byte array"), e); + } + } + + @Override + public void writeTo(final OutputStream output) throws IOException { + final int bufferSize = CodedOutputStream.computePreferredBufferSize(getSerializedSize()); + final CodedOutputStream codedOutput = CodedOutputStream.newInstance(output, bufferSize); + writeTo(codedOutput); + codedOutput.flush(); + } + + @Override + public void writeDelimitedTo(final OutputStream output) throws IOException { + final int serialized = getSerializedSize(); + final int bufferSize = + CodedOutputStream.computePreferredBufferSize( + CodedOutputStream.computeUInt32SizeNoTag(serialized) + serialized); + final CodedOutputStream codedOutput = CodedOutputStream.newInstance(output, bufferSize); + codedOutput.writeUInt32NoTag(serialized); + writeTo(codedOutput); + codedOutput.flush(); + } + + private String getSerializingExceptionMessage(String target) { + return "Serializing " + + getClass().getName() + + " to a " + + target + + " threw an IOException (should never happen)."; + } + + protected int memoizedSize = -1; + + @Override + public List findInitializationErrors() { + return MessageReflection.findMissingFields(this); + } + + @Override + public String getInitializationErrorString() { + return MessageReflection.delimitWithCommas(findInitializationErrors()); + } + + @Override + public final String toString() { + return TextFormat.printer().printToString(this); + } + private static final long serialVersionUID = 0L; // Use FieldDescriptorProto.newBuilder() to construct. private FieldDescriptorProto(com.google.protobuf.GeneratedMessageV3.Builder builder) { - super(builder); +// super(builder); } private FieldDescriptorProto() { name_ = ""; @@ -14447,10 +14621,10 @@ private FieldDescriptorProto() { jsonName_ = ""; } - @java.lang.Override +// @java.lang.Override @SuppressWarnings({"unused"}) protected java.lang.Object newInstance( - UnusedPrivateParameter unused) { + GeneratedMessageV3.UnusedPrivateParameter unused) { return new FieldDescriptorProto(); } @@ -14459,7 +14633,7 @@ protected java.lang.Object newInstance( return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FieldDescriptorProto_descriptor; } - @java.lang.Override +// @java.lang.Override protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable internalGetFieldAccessorTable() { return com.google.protobuf.DescriptorProtos.internal_static_google_protobuf_FieldDescriptorProto_fieldAccessorTable @@ -15740,7 +15914,7 @@ public Builder toBuilder() { ? new Builder() : new Builder().mergeFrom(this); } - @java.lang.Override +// @java.lang.Override protected Builder newBuilderForType( com.google.protobuf.GeneratedMessageV3.BuilderParent parent) { Builder builder = new Builder(parent); diff --git a/protobuf-api/src/main/java/com/google/protobuf/GeneratedMessageV3.java b/protobuf-api/src/main/java/com/google/protobuf/GeneratedMessageV3.java index 9c4980f..a979dd5 100644 --- a/protobuf-api/src/main/java/com/google/protobuf/GeneratedMessageV3.java +++ b/protobuf-api/src/main/java/com/google/protobuf/GeneratedMessageV3.java @@ -2097,7 +2097,7 @@ public FieldAccessorTable(final Descriptor descriptor, final String[] camelCaseN * @return this */ public FieldAccessorTable ensureFieldAccessorsInitialized( - Class messageClass, Class> builderClass) { + Class messageClass, Class> builderClass) { if (initialized) { return this; } @@ -2185,14 +2185,14 @@ public FieldAccessorTable ensureFieldAccessorsInitialized( } } - private final Descriptor descriptor; + public final Descriptor descriptor; private final FieldAccessor[] fields; private String[] camelCaseNames; private final OneofAccessor[] oneofs; private volatile boolean initialized; /** Get the FieldAccessor for a particular field. */ - private FieldAccessor getField(final FieldDescriptor field) { + public FieldAccessor getField(final FieldDescriptor field) { if (field.getContainingType() != descriptor) { throw new IllegalArgumentException("FieldDescriptor does not match message type."); } else if (field.isExtension()) { @@ -2204,7 +2204,7 @@ private FieldAccessor getField(final FieldDescriptor field) { } /** Get the OneofAccessor for a particular oneof. */ - private OneofAccessor getOneof(final OneofDescriptor oneof) { + public OneofAccessor getOneof(final OneofDescriptor oneof) { if (oneof.getContainingType() != descriptor) { throw new IllegalArgumentException("OneofDescriptor does not match message type."); } @@ -2215,16 +2215,16 @@ private OneofAccessor getOneof(final OneofDescriptor oneof) { * Abstract interface that provides access to a single field. This is implemented differently * depending on the field type and cardinality. */ - private interface FieldAccessor { - Object get(GeneratedMessageV3 message); + public interface FieldAccessor { + Object get(Message message); Object get(GeneratedMessageV3.Builder builder); - Object getRaw(GeneratedMessageV3 message); + Object getRaw(Message message); void set(Builder builder, Object value); - Object getRepeated(GeneratedMessageV3 message, int index); + Object getRepeated(Message message, int index); Object getRepeated(GeneratedMessageV3.Builder builder, int index); @@ -2232,11 +2232,11 @@ private interface FieldAccessor { void addRepeated(Builder builder, Object value); - boolean has(GeneratedMessageV3 message); + boolean has(Message message); boolean has(GeneratedMessageV3.Builder builder); - int getRepeatedCount(GeneratedMessageV3 message); + int getRepeatedCount(Message message); int getRepeatedCount(GeneratedMessageV3.Builder builder); @@ -2250,12 +2250,12 @@ private interface FieldAccessor { } /** OneofAccessor provides access to a single oneof. */ - private static interface OneofAccessor { - public boolean has(final GeneratedMessageV3 message); + public static interface OneofAccessor { + public boolean has(final Message message); public boolean has(GeneratedMessageV3.Builder builder); - public FieldDescriptor get(final GeneratedMessageV3 message); + public FieldDescriptor get(final Message message); public FieldDescriptor get(GeneratedMessageV3.Builder builder); @@ -2268,7 +2268,7 @@ private static class RealOneofAccessor implements OneofAccessor { final Descriptor descriptor, final int oneofIndex, final String camelCaseName, - final Class messageClass, + final Class messageClass, final Class> builderClass) { this.descriptor = descriptor; caseMethod = getMethodOrDie(messageClass, "get" + camelCaseName + "Case"); @@ -2282,7 +2282,7 @@ private static class RealOneofAccessor implements OneofAccessor { private final Method clearMethod; @Override - public boolean has(final GeneratedMessageV3 message) { + public boolean has(final Message message) { return ((Internal.EnumLite) invokeOrDie(caseMethod, message)).getNumber() != 0; } @@ -2292,7 +2292,7 @@ public boolean has(GeneratedMessageV3.Builder builder) { } @Override - public FieldDescriptor get(final GeneratedMessageV3 message) { + public FieldDescriptor get(final Message message) { int fieldNumber = ((Internal.EnumLite) invokeOrDie(caseMethod, message)).getNumber(); if (fieldNumber > 0) { return descriptor.findFieldByNumber(fieldNumber); @@ -2326,7 +2326,7 @@ private static class SyntheticOneofAccessor implements OneofAccessor { private final FieldDescriptor fieldDescriptor; @Override - public boolean has(final GeneratedMessageV3 message) { + public boolean has(final Message message) { return message.hasField(fieldDescriptor); } @@ -2336,7 +2336,7 @@ public boolean has(GeneratedMessageV3.Builder builder) { } @Override - public FieldDescriptor get(final GeneratedMessageV3 message) { + public FieldDescriptor get(final Message message) { return message.hasField(fieldDescriptor) ? fieldDescriptor : null; } @@ -2355,17 +2355,17 @@ public void clear(final Builder builder) { @SuppressWarnings("SameNameButDifferent") private static class SingularFieldAccessor implements FieldAccessor { private interface MethodInvoker { - Object get(final GeneratedMessageV3 message); + Object get(final Message message); Object get(GeneratedMessageV3.Builder builder); - int getOneofFieldNumber(final GeneratedMessageV3 message); + int getOneofFieldNumber(final Message message); int getOneofFieldNumber(final GeneratedMessageV3.Builder builder); void set(final GeneratedMessageV3.Builder builder, final Object value); - boolean has(final GeneratedMessageV3 message); + boolean has(final Message message); boolean has(GeneratedMessageV3.Builder builder); @@ -2385,7 +2385,7 @@ private static final class ReflectionInvoker implements MethodInvoker { ReflectionInvoker( final FieldDescriptor descriptor, final String camelCaseName, - final Class messageClass, + final Class messageClass, final Class> builderClass, final String containingOneofCamelCaseName, boolean isOneofField, @@ -2409,7 +2409,7 @@ private static final class ReflectionInvoker implements MethodInvoker { } @Override - public Object get(final GeneratedMessageV3 message) { + public Object get(final Message message) { return invokeOrDie(getMethod, message); } @@ -2419,7 +2419,7 @@ public Object get(GeneratedMessageV3.Builder builder) { } @Override - public int getOneofFieldNumber(final GeneratedMessageV3 message) { + public int getOneofFieldNumber(final Message message) { return ((Internal.EnumLite) invokeOrDie(caseMethod, message)).getNumber(); } @@ -2435,7 +2435,7 @@ public void set(final GeneratedMessageV3.Builder builder, final Object value) } @Override - public boolean has(final GeneratedMessageV3 message) { + public boolean has(final Message message) { return (Boolean) invokeOrDie(hasMethod, message); } @@ -2454,7 +2454,7 @@ public void clear(final GeneratedMessageV3.Builder builder) { SingularFieldAccessor( final FieldDescriptor descriptor, final String camelCaseName, - final Class messageClass, + final Class messageClass, final Class> builderClass, final String containingOneofCamelCaseName) { isOneofField = @@ -2492,7 +2492,7 @@ static MethodInvoker getMethodInvoker(ReflectionInvoker accessor) { protected final MethodInvoker invoker; @Override - public Object get(final GeneratedMessageV3 message) { + public Object get(final Message message) { return invoker.get(message); } @@ -2502,7 +2502,7 @@ public Object get(GeneratedMessageV3.Builder builder) { } @Override - public Object getRaw(final GeneratedMessageV3 message) { + public Object getRaw(final Message message) { return get(message); } @@ -2512,7 +2512,7 @@ public void set(final Builder builder, final Object value) { } @Override - public Object getRepeated(final GeneratedMessageV3 message, final int index) { + public Object getRepeated(final Message message, final int index) { throw new UnsupportedOperationException("getRepeatedField() called on a singular field."); } @@ -2532,7 +2532,7 @@ public void addRepeated(final Builder builder, final Object value) { } @Override - public boolean has(final GeneratedMessageV3 message) { + public boolean has(final Message message) { if (!hasHasMethod) { if (isOneofField) { return invoker.getOneofFieldNumber(message) == field.getNumber(); @@ -2554,7 +2554,7 @@ public boolean has(GeneratedMessageV3.Builder builder) { } @Override - public int getRepeatedCount(final GeneratedMessageV3 message) { + public int getRepeatedCount(final Message message) { throw new UnsupportedOperationException( "getRepeatedFieldSize() called on a singular field."); } @@ -2591,11 +2591,11 @@ public Message.Builder getRepeatedBuilder(GeneratedMessageV3.Builder builder, @SuppressWarnings("SameNameButDifferent") private static class RepeatedFieldAccessor implements FieldAccessor { interface MethodInvoker { - Object get(final GeneratedMessageV3 message); + Object get(final Message message); Object get(GeneratedMessageV3.Builder builder); - Object getRepeated(final GeneratedMessageV3 message, final int index); + Object getRepeated(final Message message, final int index); Object getRepeated(GeneratedMessageV3.Builder builder, int index); @@ -2604,7 +2604,7 @@ void setRepeated( void addRepeated(final GeneratedMessageV3.Builder builder, final Object value); - int getRepeatedCount(final GeneratedMessageV3 message); + int getRepeatedCount(final Message message); int getRepeatedCount(GeneratedMessageV3.Builder builder); @@ -2625,7 +2625,7 @@ private static final class ReflectionInvoker implements MethodInvoker { ReflectionInvoker( final FieldDescriptor descriptor, final String camelCaseName, - final Class messageClass, + final Class messageClass, final Class> builderClass) { getMethod = getMethodOrDie(messageClass, "get" + camelCaseName + "List"); getMethodBuilder = getMethodOrDie(builderClass, "get" + camelCaseName + "List"); @@ -2642,7 +2642,7 @@ private static final class ReflectionInvoker implements MethodInvoker { } @Override - public Object get(final GeneratedMessageV3 message) { + public Object get(final Message message) { return invokeOrDie(getMethod, message); } @@ -2652,7 +2652,7 @@ public Object get(GeneratedMessageV3.Builder builder) { } @Override - public Object getRepeated(final GeneratedMessageV3 message, final int index) { + public Object getRepeated(final Message message, final int index) { return invokeOrDie(getRepeatedMethod, message, index); } @@ -2675,7 +2675,7 @@ public void addRepeated(final GeneratedMessageV3.Builder builder, final Objec } @Override - public int getRepeatedCount(final GeneratedMessageV3 message) { + public int getRepeatedCount(final Message message) { return (Integer) invokeOrDie(getCountMethod, message); } @@ -2697,7 +2697,7 @@ public void clear(final GeneratedMessageV3.Builder builder) { RepeatedFieldAccessor( final FieldDescriptor descriptor, final String camelCaseName, - final Class messageClass, + final Class messageClass, final Class> builderClass) { ReflectionInvoker reflectionInvoker = new ReflectionInvoker(descriptor, camelCaseName, messageClass, builderClass); @@ -2710,7 +2710,7 @@ static MethodInvoker getMethodInvoker(ReflectionInvoker accessor) { } @Override - public Object get(final GeneratedMessageV3 message) { + public Object get(final Message message) { return invoker.get(message); } @@ -2720,7 +2720,7 @@ public Object get(GeneratedMessageV3.Builder builder) { } @Override - public Object getRaw(final GeneratedMessageV3 message) { + public Object getRaw(final Message message) { return get(message); } @@ -2737,7 +2737,7 @@ public void set(final Builder builder, final Object value) { } @Override - public Object getRepeated(final GeneratedMessageV3 message, final int index) { + public Object getRepeated(final Message message, final int index) { return invoker.getRepeated(message, index); } @@ -2757,7 +2757,7 @@ public void addRepeated(final Builder builder, final Object value) { } @Override - public boolean has(final GeneratedMessageV3 message) { + public boolean has(final Message message) { throw new UnsupportedOperationException("hasField() called on a repeated field."); } @@ -2767,7 +2767,7 @@ public boolean has(GeneratedMessageV3.Builder builder) { } @Override - public int getRepeatedCount(final GeneratedMessageV3 message) { + public int getRepeatedCount(final Message message) { return invoker.getRepeatedCount(message); } @@ -2801,7 +2801,7 @@ public Message.Builder getRepeatedBuilder(GeneratedMessageV3.Builder builder, private static class MapFieldAccessor implements FieldAccessor { MapFieldAccessor( - final FieldDescriptor descriptor, final Class messageClass) { + final FieldDescriptor descriptor, final Class messageClass) { field = descriptor; Method getDefaultInstanceMethod = getMethodOrDie(messageClass, "getDefaultInstance"); MapFieldReflectionAccessor defaultMapField = @@ -2812,8 +2812,8 @@ private static class MapFieldAccessor implements FieldAccessor { private final FieldDescriptor field; private final Message mapEntryMessageDefaultInstance; - private MapFieldReflectionAccessor getMapField(GeneratedMessageV3 message) { - return message.internalGetMapFieldReflection(field.getNumber()); + private MapFieldReflectionAccessor getMapField(Message message) { + return ((GeneratedMessageV3) message).internalGetMapFieldReflection(field.getNumber()); } private MapFieldReflectionAccessor getMapField(GeneratedMessageV3.Builder builder) { @@ -2839,7 +2839,7 @@ private Message coerceType(Message value) { } @Override - public Object get(GeneratedMessageV3 message) { + public Object get(Message message) { List result = new ArrayList<>(); for (int i = 0; i < getRepeatedCount(message); i++) { result.add(getRepeated(message, i)); @@ -2857,7 +2857,7 @@ public Object get(Builder builder) { } @Override - public Object getRaw(GeneratedMessageV3 message) { + public Object getRaw(Message message) { return get(message); } @@ -2870,7 +2870,7 @@ public void set(Builder builder, Object value) { } @Override - public Object getRepeated(GeneratedMessageV3 message, int index) { + public Object getRepeated(Message message, int index) { return getMapField(message).getList().get(index); } @@ -2890,7 +2890,7 @@ public void addRepeated(Builder builder, Object value) { } @Override - public boolean has(GeneratedMessageV3 message) { + public boolean has(Message message) { throw new UnsupportedOperationException("hasField() is not supported for repeated fields."); } @@ -2900,7 +2900,7 @@ public boolean has(Builder builder) { } @Override - public int getRepeatedCount(GeneratedMessageV3 message) { + public int getRepeatedCount(Message message) { return getMapField(message).getList().size(); } @@ -2936,7 +2936,7 @@ private static final class SingularEnumFieldAccessor extends SingularFieldAccess SingularEnumFieldAccessor( final FieldDescriptor descriptor, final String camelCaseName, - final Class messageClass, + final Class messageClass, final Class> builderClass, final String containingOneofCamelCaseName) { super(descriptor, camelCaseName, messageClass, builderClass, containingOneofCamelCaseName); @@ -2965,7 +2965,7 @@ private static final class SingularEnumFieldAccessor extends SingularFieldAccess private Method setValueMethod; @Override - public Object get(final GeneratedMessageV3 message) { + public Object get(final Message message) { if (supportUnknownEnumValue) { int value = (Integer) invokeOrDie(getValueMethod, message); return enumDescriptor.findValueByNumberCreatingIfUnknown(value); @@ -2998,7 +2998,7 @@ private static final class RepeatedEnumFieldAccessor extends RepeatedFieldAccess RepeatedEnumFieldAccessor( final FieldDescriptor descriptor, final String camelCaseName, - final Class messageClass, + final Class messageClass, final Class> builderClass) { super(descriptor, camelCaseName, messageClass, builderClass); @@ -3033,7 +3033,7 @@ private static final class RepeatedEnumFieldAccessor extends RepeatedFieldAccess private Method addRepeatedValueMethod; @Override - public Object get(final GeneratedMessageV3 message) { + public Object get(final Message message) { final List newList = new ArrayList<>(); final int size = getRepeatedCount(message); for (int i = 0; i < size; i++) { @@ -3053,7 +3053,7 @@ public Object get(final GeneratedMessageV3.Builder builder) { } @Override - public Object getRepeated(final GeneratedMessageV3 message, final int index) { + public Object getRepeated(final Message message, final int index) { if (supportUnknownEnumValue) { int value = (Integer) invokeOrDie(getRepeatedValueMethod, message, index); return enumDescriptor.findValueByNumberCreatingIfUnknown(value); @@ -3114,7 +3114,7 @@ private static final class SingularStringFieldAccessor extends SingularFieldAcce SingularStringFieldAccessor( final FieldDescriptor descriptor, final String camelCaseName, - final Class messageClass, + final Class messageClass, final Class> builderClass, final String containingOneofCamelCaseName) { super(descriptor, camelCaseName, messageClass, builderClass, containingOneofCamelCaseName); @@ -3127,7 +3127,7 @@ private static final class SingularStringFieldAccessor extends SingularFieldAcce private final Method setBytesMethodBuilder; @Override - public Object getRaw(final GeneratedMessageV3 message) { + public Object getRaw(final Message message) { return invokeOrDie(getBytesMethod, message); } @@ -3148,7 +3148,7 @@ private static final class SingularMessageFieldAccessor extends SingularFieldAcc SingularMessageFieldAccessor( final FieldDescriptor descriptor, final String camelCaseName, - final Class messageClass, + final Class messageClass, final Class> builderClass, final String containingOneofCamelCaseName) { super(descriptor, camelCaseName, messageClass, builderClass, containingOneofCamelCaseName); @@ -3194,7 +3194,7 @@ private static final class RepeatedMessageFieldAccessor extends RepeatedFieldAcc RepeatedMessageFieldAccessor( final FieldDescriptor descriptor, final String camelCaseName, - final Class messageClass, + final Class messageClass, final Class> builderClass) { super(descriptor, camelCaseName, messageClass, builderClass); diff --git a/protobuf-api/src/main/java/com/google/protobuf/RepeatedFieldBuilderV3.java b/protobuf-api/src/main/java/com/google/protobuf/RepeatedFieldBuilderV3.java index b36794f..191799f 100644 --- a/protobuf-api/src/main/java/com/google/protobuf/RepeatedFieldBuilderV3.java +++ b/protobuf-api/src/main/java/com/google/protobuf/RepeatedFieldBuilderV3.java @@ -37,7 +37,7 @@ * @author jonp@google.com (Jon Perlow) */ public class RepeatedFieldBuilderV3< - MType extends AbstractMessage, + MType extends Message, BType extends AbstractMessage.Builder, IType extends MessageOrBuilder> implements AbstractMessage.BuilderParent { @@ -551,7 +551,7 @@ private void incrementModCounts() { * @param the common interface for the message and the builder */ private static class MessageExternalList< - MType extends AbstractMessage, + MType extends Message, BType extends AbstractMessage.Builder, IType extends MessageOrBuilder> extends AbstractList implements List, RandomAccess { @@ -585,7 +585,7 @@ void incrementModCount() { * @param the common interface for the message and the builder */ private static class BuilderExternalList< - MType extends AbstractMessage, + MType extends Message, BType extends AbstractMessage.Builder, IType extends MessageOrBuilder> extends AbstractList implements List, RandomAccess { @@ -619,7 +619,7 @@ void incrementModCount() { * @param the common interface for the message and the builder */ private static class MessageOrBuilderExternalList< - MType extends AbstractMessage, + MType extends Message, BType extends AbstractMessage.Builder, IType extends MessageOrBuilder> extends AbstractList implements List, RandomAccess { diff --git a/protobuf-api/src/main/java/com/google/protobuf/SingleFieldBuilderV3.java b/protobuf-api/src/main/java/com/google/protobuf/SingleFieldBuilderV3.java index 0aff2b8..5ee8b45 100644 --- a/protobuf-api/src/main/java/com/google/protobuf/SingleFieldBuilderV3.java +++ b/protobuf-api/src/main/java/com/google/protobuf/SingleFieldBuilderV3.java @@ -30,7 +30,7 @@ * @author jonp@google.com (Jon Perlow) */ public class SingleFieldBuilderV3< - MType extends AbstractMessage, + MType extends Message, BType extends AbstractMessage.Builder, IType extends MessageOrBuilder> implements AbstractMessage.BuilderParent { @@ -105,7 +105,7 @@ public BType getBuilder() { // does not create any sub-objects with independent clean/dirty states, // therefore setting the builder itself to clean without actually calling // build() cannot break any invariants. - builder = (BType) message.newBuilderForType(this); + builder = (BType) message.newBuilderForType(); builder.mergeFrom(message); // no-op if message is the default message builder.markClean(); }