Skip to content

Refactor protobuf enum handling for proto3 unknown values.#2722

Open
copybara-service[bot] wants to merge 1 commit intomasterfrom
test_900358223
Open

Refactor protobuf enum handling for proto3 unknown values.#2722
copybara-service[bot] wants to merge 1 commit intomasterfrom
test_900358223

Conversation

@copybara-service
Copy link
Copy Markdown

Refactor protobuf enum handling for proto3 unknown values.

This change introduces a new class, ComGoogleProtobufDescriptors_UnknownEnumValueDescriptor, which is a superclass of ComGoogleProtobufDescriptors_EnumValueDescriptor. When parsing a proto3 enum with an unknown value, a new instance of UnknownEnumValueDescriptor is created, allowing reflection to differentiate between known enum values and unknown ones.

Enum fields now store CGPEnumValueDescriptor instances directly. Custom getter implementations are added for enum fields to return the underlying Java enum object. Type conversion macros have been refactored into inline functions for better type safety and clarity. Tests were added to verify that unknown enum values are correctly serialized back to their original wire format.

This change introduces a new class, ComGoogleProtobufDescriptors_UnknownEnumValueDescriptor, which is a superclass of ComGoogleProtobufDescriptors_EnumValueDescriptor. When parsing a proto3 enum with an unknown value, a new instance of UnknownEnumValueDescriptor is created, allowing reflection to differentiate between known enum values and unknown ones.

Enum fields now store CGPEnumValueDescriptor instances directly. Custom getter implementations are added for enum fields to return the underlying Java enum object. Type conversion macros have been refactored into inline functions for better type safety and clarity. Tests were added to verify that unknown enum values are correctly serialized back to their original wire format.

PiperOrigin-RevId: 900358223
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants