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.EnumDescriptorProtoprotoprivate java.util.Map<java.lang.Integer,java.lang.ref.WeakReference<Descriptors.EnumValueDescriptor>>unknownValuesprivate Descriptors.EnumValueDescriptor[]valuesprivate Descriptors.EnumValueDescriptor[]valuesSortedByNumber
-
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 voidsetProto(DescriptorProtos.EnumDescriptorProto proto)DescriptorProtos.EnumDescriptorPrototoProto()Convert the descriptor to its protocol message representation.
-
-
-
Field Detail
-
index
private final int index
-
proto
private DescriptorProtos.EnumDescriptorProto proto
-
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.- Specified by:
toProtoin classDescriptors.GenericDescriptor
-
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()
-
setProto
private void setProto(DescriptorProtos.EnumDescriptorProto proto)
-
-