@@ -886,16 +886,16 @@ public interface ExtendableMessageOrBuilder<MessageT extends ExtendableMessage<M
886886 Message getDefaultInstanceForType ();
887887
888888 /** Check if a singular extension is present. */
889- <T > boolean hasExtension (ExtensionLite <MessageT , T > extension );
889+ <T > boolean hasExtension (ExtensionLite <? extends MessageT , T > extension );
890890
891891 /** Get the number of elements in a repeated extension. */
892- <T > int getExtensionCount (ExtensionLite <MessageT , List <T >> extension );
892+ <T > int getExtensionCount (ExtensionLite <? extends MessageT , List <T >> extension );
893893
894894 /** Get the value of an extension. */
895- <T > T getExtension (ExtensionLite <MessageT , T > extension );
895+ <T > T getExtension (ExtensionLite <? extends MessageT , T > extension );
896896
897897 /** Get one element of a repeated extension. */
898- <T > T getExtension (ExtensionLite <MessageT , List <T >> extension , int index );
898+ <T > T getExtension (ExtensionLite <? extends MessageT , List <T >> extension , int index );
899899 }
900900
901901 /**
@@ -946,7 +946,7 @@ protected ExtendableMessage(ExtendableBuilder<MessageT, ?> builder) {
946946 this .extensions = builder .buildExtensions ();
947947 }
948948
949- private void verifyExtensionContainingType (final Extension <MessageT , ?> extension ) {
949+ private void verifyExtensionContainingType (final Extension <? extends MessageT , ?> extension ) {
950950 if (extension .getDescriptor ().getContainingType () != getDescriptorForType ()) {
951951 // This can only happen if someone uses unchecked operations.
952952 throw new IllegalArgumentException (
@@ -960,7 +960,8 @@ private void verifyExtensionContainingType(final Extension<MessageT, ?> extensio
960960
961961 /** Check if a singular extension is present. */
962962 @ Override
963- public final <T > boolean hasExtension (final ExtensionLite <MessageT , T > extensionLite ) {
963+ public final <T > boolean hasExtension (
964+ final ExtensionLite <? extends MessageT , T > extensionLite ) {
964965 Extension <MessageT , T > extension = checkNotLite (extensionLite );
965966
966967 verifyExtensionContainingType (extension );
@@ -969,7 +970,8 @@ public final <T> boolean hasExtension(final ExtensionLite<MessageT, T> extension
969970
970971 /** Get the number of elements in a repeated extension. */
971972 @ Override
972- public final <T > int getExtensionCount (final ExtensionLite <MessageT , List <T >> extensionLite ) {
973+ public final <T > int getExtensionCount (
974+ final ExtensionLite <? extends MessageT , List <T >> extensionLite ) {
973975 Extension <MessageT , List <T >> extension = checkNotLite (extensionLite );
974976
975977 verifyExtensionContainingType (extension );
@@ -980,7 +982,7 @@ public final <T> int getExtensionCount(final ExtensionLite<MessageT, List<T>> ex
980982 /** Get the value of an extension. */
981983 @ Override
982984 @ SuppressWarnings ("unchecked" )
983- public final <T > T getExtension (final ExtensionLite <MessageT , T > extensionLite ) {
985+ public final <T > T getExtension (final ExtensionLite <? extends MessageT , T > extensionLite ) {
984986 Extension <MessageT , T > extension = checkNotLite (extensionLite );
985987
986988 verifyExtensionContainingType (extension );
@@ -1003,7 +1005,7 @@ public final <T> T getExtension(final ExtensionLite<MessageT, T> extensionLite)
10031005 @ Override
10041006 @ SuppressWarnings ("unchecked" )
10051007 public final <T > T getExtension (
1006- final ExtensionLite <MessageT , List <T >> extensionLite , final int index ) {
1008+ final ExtensionLite <? extends MessageT , List <T >> extensionLite , final int index ) {
10071009 Extension <MessageT , List <T >> extension = checkNotLite (extensionLite );
10081010
10091011 verifyExtensionContainingType (extension );
@@ -1036,7 +1038,8 @@ protected class ExtensionWriter {
10361038 private Map .Entry <FieldDescriptor , Object > next ;
10371039 private final boolean messageSetWireFormat ;
10381040
1039- private ExtensionWriter (final boolean messageSetWireFormat ) {
1041+ // TODO: Should be marked private in v5.x.x once GeneratedMessageV3 is removed.
1042+ protected ExtensionWriter (final boolean messageSetWireFormat ) {
10401043 if (iter .hasNext ()) {
10411044 next = iter .next ();
10421045 }
@@ -1254,7 +1257,8 @@ private void verifyExtensionContainingType(final Extension<MessageT, ?> extensio
12541257
12551258 /** Check if a singular extension is present. */
12561259 @ Override
1257- public final <T > boolean hasExtension (final ExtensionLite <MessageT , T > extensionLite ) {
1260+ public final <T > boolean hasExtension (
1261+ final ExtensionLite <? extends MessageT , T > extensionLite ) {
12581262 Extension <MessageT , T > extension = checkNotLite (extensionLite );
12591263
12601264 verifyExtensionContainingType (extension );
@@ -1263,7 +1267,8 @@ public final <T> boolean hasExtension(final ExtensionLite<MessageT, T> extension
12631267
12641268 /** Get the number of elements in a repeated extension. */
12651269 @ Override
1266- public final <T > int getExtensionCount (final ExtensionLite <MessageT , List <T >> extensionLite ) {
1270+ public final <T > int getExtensionCount (
1271+ final ExtensionLite <? extends MessageT , List <T >> extensionLite ) {
12671272 Extension <MessageT , List <T >> extension = checkNotLite (extensionLite );
12681273
12691274 verifyExtensionContainingType (extension );
@@ -1273,7 +1278,7 @@ public final <T> int getExtensionCount(final ExtensionLite<MessageT, List<T>> ex
12731278
12741279 /** Get the value of an extension. */
12751280 @ Override
1276- public final <T > T getExtension (final ExtensionLite <MessageT , T > extensionLite ) {
1281+ public final <T > T getExtension (final ExtensionLite <? extends MessageT , T > extensionLite ) {
12771282 Extension <MessageT , T > extension = checkNotLite (extensionLite );
12781283
12791284 verifyExtensionContainingType (extension );
@@ -1295,7 +1300,7 @@ public final <T> T getExtension(final ExtensionLite<MessageT, T> extensionLite)
12951300 /** Get one element of a repeated extension. */
12961301 @ Override
12971302 public final <T > T getExtension (
1298- final ExtensionLite <MessageT , List <T >> extensionLite , final int index ) {
1303+ final ExtensionLite <? extends MessageT , List <T >> extensionLite , final int index ) {
12991304 Extension <MessageT , List <T >> extension = checkNotLite (extensionLite );
13001305
13011306 verifyExtensionContainingType (extension );
@@ -1309,7 +1314,7 @@ public final <T> T getExtension(
13091314
13101315 /** Set the value of an extension. */
13111316 public final <T > BuilderT setExtension (
1312- final ExtensionLite <MessageT , T > extensionLite , final T value ) {
1317+ final ExtensionLite <? extends MessageT , T > extensionLite , final T value ) {
13131318 Extension <MessageT , T > extension = checkNotLite (extensionLite );
13141319
13151320 verifyExtensionContainingType (extension );
@@ -1322,7 +1327,9 @@ public final <T> BuilderT setExtension(
13221327
13231328 /** Set the value of one element of a repeated extension. */
13241329 public final <T > BuilderT setExtension (
1325- final ExtensionLite <MessageT , List <T >> extensionLite , final int index , final T value ) {
1330+ final ExtensionLite <? extends MessageT , List <T >> extensionLite ,
1331+ final int index ,
1332+ final T value ) {
13261333 Extension <MessageT , List <T >> extension = checkNotLite (extensionLite );
13271334
13281335 verifyExtensionContainingType (extension );
@@ -1335,7 +1342,7 @@ public final <T> BuilderT setExtension(
13351342
13361343 /** Append a value to a repeated extension. */
13371344 public final <T > BuilderT addExtension (
1338- final ExtensionLite <MessageT , List <T >> extensionLite , final T value ) {
1345+ final ExtensionLite <? extends MessageT , List <T >> extensionLite , final T value ) {
13391346 Extension <MessageT , List <T >> extension = checkNotLite (extensionLite );
13401347
13411348 verifyExtensionContainingType (extension );
@@ -1347,7 +1354,8 @@ public final <T> BuilderT addExtension(
13471354 }
13481355
13491356 /** Clear an extension. */
1350- public final <T > BuilderT clearExtension (final ExtensionLite <MessageT , T > extensionLite ) {
1357+ public final <T > BuilderT clearExtension (
1358+ final ExtensionLite <? extends MessageT , T > extensionLite ) {
13511359 Extension <MessageT , T > extension = checkNotLite (extensionLite );
13521360
13531361 verifyExtensionContainingType (extension );
@@ -1563,7 +1571,8 @@ public Message.Builder newBuilderForField(final FieldDescriptor field) {
15631571 }
15641572 }
15651573
1566- protected final void mergeExtensionFields (final ExtendableMessage <?> other ) {
1574+ // TODO: Should be marked final in v5.x.x once GeneratedMessageV3 is removed.
1575+ protected void mergeExtensionFields (final ExtendableMessage <?> other ) {
15671576 if (other .extensions != null ) {
15681577 ensureExtensionsIsMutable ();
15691578 extensions .mergeFrom (other .extensions );
@@ -1939,7 +1948,8 @@ protected MapField internalGetMapField(int fieldNumber) {
19391948 * Users should ignore this class. This class provides the implementation with access to the
19401949 * fields of a message object using Java reflection.
19411950 */
1942- public static final class FieldAccessorTable {
1951+ // TODO: Should be marked final in v5.x.x once GeneratedMessageV3 is removed.
1952+ public static class FieldAccessorTable {
19431953
19441954 /**
19451955 * Construct a FieldAccessorTable for a particular message class. Only one FieldAccessorTable
@@ -3136,7 +3146,7 @@ protected Object writeReplace() throws ObjectStreamException {
31363146 * Checks that the {@link Extension} is non-Lite and returns it as a {@link GeneratedExtension}.
31373147 */
31383148 private static <MessageT extends ExtendableMessage <MessageT >, T >
3139- Extension <MessageT , T > checkNotLite (ExtensionLite <MessageT , T > extension ) {
3149+ Extension <MessageT , T > checkNotLite (ExtensionLite <? extends MessageT , T > extension ) {
31403150 if (extension .isLite ()) {
31413151 throw new IllegalArgumentException ("Expected non-lite extension." );
31423152 }
0 commit comments