Package com.google.protobuf
Class Descriptors.EnumDescriptor
- java.lang.Object
-
- com.google.protobuf.Descriptors.GenericDescriptor
-
- com.google.protobuf.Descriptors.EnumDescriptor
-
- All Implemented Interfaces:
Internal.EnumLiteMap<Descriptors.EnumValueDescriptor>
- Enclosing class:
- Descriptors
public static final class Descriptors.EnumDescriptor extends Descriptors.GenericDescriptor implements Internal.EnumLiteMap<Descriptors.EnumValueDescriptor>
Describes an enum type.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classDescriptors.EnumDescriptor.UnknownEnumValueReference
-
Field Summary
Fields Modifier and Type Field Description private java.lang.ref.ReferenceQueue<Descriptors.EnumValueDescriptor>cleanupQueueprivate Descriptors.DescriptorcontainingTypeprivate intdistinctNumbersprivate Descriptors.FileDescriptorfileprivate java.lang.StringfullNameprivate intindexprivate DescriptorProtos.EnumOptionsoptionsprivate DescriptorProtos.EnumDescriptorProtoprotoprivate java.util.Map<java.lang.Integer,java.lang.ref.WeakReference<Descriptors.EnumValueDescriptor>>unknownValuesprivate Descriptors.EnumValueDescriptor[]valuesprivate Descriptors.EnumValueDescriptor[]valuesSortedByNumber-
Fields inherited from class com.google.protobuf.Descriptors.GenericDescriptor
features, parent
-
-
Constructor Summary
Constructors Modifier Constructor Description privateEnumDescriptor(DescriptorProtos.EnumDescriptorProto proto, Descriptors.FileDescriptor file, Descriptors.Descriptor parent, int index)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Descriptors.EnumValueDescriptorfindValueByName(java.lang.String name)Find an enum value by name.Descriptors.EnumValueDescriptorfindValueByNumber(int number)Find an enum value by number.Descriptors.EnumValueDescriptorfindValueByNumberCreatingIfUnknown(int number)Get the enum value for a number.Descriptors.DescriptorgetContainingType()If this is a nested type, get the outer descriptor, otherwise null.Descriptors.FileDescriptorgetFile()Get theDescriptors.FileDescriptorcontaining this descriptor.java.lang.StringgetFullName()Get the type's fully-qualified name.intgetIndex()Get the index of this descriptor within its parent.java.lang.StringgetName()Get the type's unqualified name.DescriptorProtos.EnumOptionsgetOptions()Get theEnumOptions, defined indescriptor.proto.(package private) intgetUnknownEnumValueDescriptorCount()java.util.List<Descriptors.EnumValueDescriptor>getValues()Get a list of defined values for this enum.booleanisClosed()Determines if the given enum is closed.booleanisReservedName(java.lang.String name)Determines if the given field name is reserved.booleanisReservedNumber(int number)Determines if the given field number is reserved.private voidresolveAllFeatures()SeeFileDescriptor#resolveAllFeatures.private voidsetProto(DescriptorProtos.EnumDescriptorProto proto)DescriptorProtos.EnumDescriptorPrototoProto()Convert the descriptor to its protocol message representation.-
Methods inherited from class com.google.protobuf.Descriptors.GenericDescriptor
getFeatures, hasInferredLegacyProtoFeatures, inferLegacyProtoFeatures, resolveFeatures, validateFeatures
-
-
-
-
Field Detail
-
index
private final int index
-
proto
private DescriptorProtos.EnumDescriptorProto proto
-
options
private volatile DescriptorProtos.EnumOptions options
-
fullName
private final java.lang.String fullName
-
file
private final Descriptors.FileDescriptor file
-
containingType
private final Descriptors.Descriptor containingType
-
values
private final Descriptors.EnumValueDescriptor[] values
-
valuesSortedByNumber
private final Descriptors.EnumValueDescriptor[] valuesSortedByNumber
-
distinctNumbers
private final int distinctNumbers
-
unknownValues
private java.util.Map<java.lang.Integer,java.lang.ref.WeakReference<Descriptors.EnumValueDescriptor>> unknownValues
-
cleanupQueue
private java.lang.ref.ReferenceQueue<Descriptors.EnumValueDescriptor> cleanupQueue
-
-
Constructor Detail
-
EnumDescriptor
private EnumDescriptor(DescriptorProtos.EnumDescriptorProto proto, Descriptors.FileDescriptor file, Descriptors.Descriptor parent, int index) throws Descriptors.DescriptorValidationException
-
-
Method Detail
-
getIndex
public int getIndex()
Get the index of this descriptor within its parent.- See Also:
Descriptors.Descriptor.getIndex()
-
toProto
public DescriptorProtos.EnumDescriptorProto toProto()
Convert the descriptor to its protocol message representation.
-
getName
public java.lang.String getName()
Get the type's unqualified name.- Specified by:
getNamein classDescriptors.GenericDescriptor
-
getFullName
public java.lang.String getFullName()
Get the type's fully-qualified name.- Specified by:
getFullNamein classDescriptors.GenericDescriptor- See Also:
Descriptors.Descriptor.getFullName()
-
getFile
public Descriptors.FileDescriptor getFile()
Get theDescriptors.FileDescriptorcontaining this descriptor.- Specified by:
getFilein classDescriptors.GenericDescriptor
-
isClosed
public boolean isClosed()
Determines if the given enum is closed.Closed enum means that it:
- Has a fixed set of values, rather than being equivalent to an int32.
- Encountering values not in this set causes them to be treated as unknown fields.
- The first value (i.e., the default) may be nonzero.
WARNING: Some runtimes currently have a quirk where non-closed enums are treated as closed when used as the type of fields defined in a `syntax = proto2;` file. This quirk is not present in all runtimes; as of writing, we know that:
- C++, Java, and C++-based Python share this quirk.
- UPB and UPB-based Python do not.
- PHP and Ruby treat all enums as open regardless of declaration.
Care should be taken when using this function to respect the target runtime's enum handling quirks.
-
getContainingType
public Descriptors.Descriptor getContainingType()
If this is a nested type, get the outer descriptor, otherwise null.
-
getOptions
public DescriptorProtos.EnumOptions getOptions()
Get theEnumOptions, defined indescriptor.proto.
-
getValues
public java.util.List<Descriptors.EnumValueDescriptor> getValues()
Get a list of defined values for this enum.
-
isReservedNumber
public boolean isReservedNumber(int number)
Determines if the given field number is reserved.
-
isReservedName
public boolean isReservedName(java.lang.String name)
Determines if the given field name is reserved.
-
findValueByName
public Descriptors.EnumValueDescriptor findValueByName(java.lang.String name)
Find an enum value by name.- Parameters:
name- the unqualified name of the value such as "FOO"- Returns:
- the value's descriptor, or
nullif not found
-
findValueByNumber
public Descriptors.EnumValueDescriptor findValueByNumber(int number)
Find an enum value by number. If multiple enum values have the same number, this returns the first defined value with that number.- Specified by:
findValueByNumberin interfaceInternal.EnumLiteMap<Descriptors.EnumValueDescriptor>- Parameters:
number- The value's number.- Returns:
- the value's descriptor, or
nullif not found.
-
findValueByNumberCreatingIfUnknown
public Descriptors.EnumValueDescriptor findValueByNumberCreatingIfUnknown(int number)
Get the enum value for a number. If no enum value has this number, construct an EnumValueDescriptor for it.
-
getUnknownEnumValueDescriptorCount
int getUnknownEnumValueDescriptorCount()
-
resolveAllFeatures
private void resolveAllFeatures() throws Descriptors.DescriptorValidationExceptionSeeFileDescriptor#resolveAllFeatures.
-
setProto
private void setProto(DescriptorProtos.EnumDescriptorProto proto) throws Descriptors.DescriptorValidationException
-
-