From d6157f7c7ec78a6942cfd6d96d2e0b40e007ae0d Mon Sep 17 00:00:00 2001 From: Sandy Zhang Date: Wed, 12 Jul 2023 08:41:27 -0700 Subject: [PATCH] Mark `FieldDescriptor.hasOptionalKeyword()` as deprecated. This API will be removed in a future breaking change. PiperOrigin-RevId: 547505900 --- .../main/java/com/google/protobuf/Descriptors.java | 4 +++- .../com/google/protobuf/LegacyDescriptorsUtil.java | 11 +++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/java/core/src/main/java/com/google/protobuf/Descriptors.java b/java/core/src/main/java/com/google/protobuf/Descriptors.java index 75456869fa..f3365e24cc 100644 --- a/java/core/src/main/java/com/google/protobuf/Descriptors.java +++ b/java/core/src/main/java/com/google/protobuf/Descriptors.java @@ -1266,7 +1266,9 @@ public final class Descriptors { * Returns true if this field was syntactically written with "optional" in the .proto file. * Excludes singular proto3 fields that do not have a label. */ - public boolean hasOptionalKeyword() { + @Deprecated + public + boolean hasOptionalKeyword() { return isProto3Optional || (file.getSyntax() == Syntax.PROTO2 && isOptional() && getContainingOneof() == null); } diff --git a/java/core/src/main/java/com/google/protobuf/LegacyDescriptorsUtil.java b/java/core/src/main/java/com/google/protobuf/LegacyDescriptorsUtil.java index b091752a48..8be98bf2dc 100644 --- a/java/core/src/main/java/com/google/protobuf/LegacyDescriptorsUtil.java +++ b/java/core/src/main/java/com/google/protobuf/LegacyDescriptorsUtil.java @@ -30,6 +30,7 @@ package com.google.protobuf; +import com.google.protobuf.Descriptors.FieldDescriptor; import com.google.protobuf.Descriptors.FileDescriptor; import com.google.protobuf.Descriptors.OneofDescriptor; @@ -70,6 +71,16 @@ public final class LegacyDescriptorsUtil { private LegacyFileDescriptor() {} } + /** Wraps FieldDescriptor */ + public static final class LegacyFieldDescriptor { + + public static boolean hasOptionalKeyword(FieldDescriptor descriptor) { + return descriptor.hasOptionalKeyword(); + } + + private LegacyFieldDescriptor() {} + } + /** Wraps OneofDescriptor */ public static final class LegacyOneofDescriptor {