Package com.google.protobuf

# Class Descriptors.Descriptor

java.lang.Object
com.google.protobuf.Descriptors.GenericDescriptor
com.google.protobuf.Descriptors.Descriptor

Enclosing class:
  `Descriptors`

public static final class Descriptors.Descriptor extends Descriptors.GenericDescriptor
Describes a message type.

## Method Summary

Modifier and Type
Method
Description
`Descriptors.EnumDescriptor`
`findEnumTypeByName(String name)`
Finds a nested enum type by name.
`Descriptors.FieldDescriptor`
`findFieldByName(String name)`
Finds a field by name.
`Descriptors.FieldDescriptor`
`findFieldByNumber(int number)`
Finds a field by field number.
`Descriptors.Descriptor`
`findNestedTypeByName(String name)`
Finds a nested message type by name.
`Descriptors.Descriptor`
`getContainingType()`
If this is a nested type, get the outer descriptor, otherwise null.
`List<Descriptors.EnumDescriptor>`
`getEnumTypes()`
Get a list of enum types nested within this one.
`List<Descriptors.FieldDescriptor>`
`getExtensions()`
Get a list of this message type's extensions.
`List<Descriptors.FieldDescriptor>`
`getFields()`
Get a list of this message type's fields.
`Descriptors.FileDescriptor`
`getFile()`
Get the `Descriptors.FileDescriptor` containing this descriptor.
`String`
`getFullName()`
Get the type's fully-qualified name, within the proto language's namespace.
`int`
`getIndex()`
Get the index of this descriptor within its parent.
`String`
`getName()`
Get the type's unqualified name.
`List<Descriptors.Descriptor>`
`getNestedTypes()`
Get a list of message types nested within this one.
`List<Descriptors.OneofDescriptor>`
`getOneofs()`
Get a list of this message type's oneofs.
`DescriptorProtos.MessageOptions`
`getOptions()`
Get the `MessageOptions`, defined in `descriptor.proto`.
`List<Descriptors.OneofDescriptor>`
`getRealOneofs()`
Get a list of this message type's real oneofs.
`boolean`
`isExtendable()`
Indicates whether the message can be extended.
`boolean`
`isExtensionNumber(int number)`
Determines if the given field number is an extension.
`boolean`
`isReservedName(String name)`
Determines if the given field name is reserved.
`boolean`
`isReservedNumber(int number)`
Determines if the given field number is reserved.
`DescriptorProtos.DescriptorProto`
`toProto()`
Convert the descriptor to its protocol message representation.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Method Details

### getIndex

public int getIndex()
Get the index of this descriptor within its parent. In other words, given a `Descriptors.FileDescriptor` `file`, the following is true:

       for all i in [0, file.getMessageTypeCount()):
         file.getMessageType(i).getIndex() == i

Similarly, for a `Descriptors.Descriptor` `messageType`:

       for all i in [0, messageType.getNestedTypeCount()):
         messageType.getNestedType(i).getIndex() == i

### toProto

public DescriptorProtos.DescriptorProto toProto()
Convert the descriptor to its protocol message representation.

Specified by:
  `toProto` in class `Descriptors.GenericDescriptor`

### getName

public String getName()
Get the type's unqualified name.

Specified by:
  `getName` in class `Descriptors.GenericDescriptor`

### getFullName

public String getFullName()
Get the type's fully-qualified name, within the proto language's namespace. This differs from the Java name. For example, given this `.proto`:

       package foo.bar;
       option java_package = "com.example.protos"
       message Baz {}

`Baz`'s full name is "foo.bar.Baz".

Specified by:
  `getFullName` in class `Descriptors.GenericDescriptor`

### getFile

public Descriptors.FileDescriptor getFile()
Get the `Descriptors.FileDescriptor` containing this descriptor.

Specified by:
  `getFile` in class `Descriptors.GenericDescriptor`

### getContainingType

public Descriptors.Descriptor getContainingType()
If this is a nested type, get the outer descriptor, otherwise null.

### getOptions

public DescriptorProtos.MessageOptions getOptions()
Get the `MessageOptions`, defined in `descriptor.proto`.

### getFields

public List<Descriptors.FieldDescriptor> getFields()
Get a list of this message type's fields.

### getOneofs

public List<Descriptors.OneofDescriptor> getOneofs()
Get a list of this message type's oneofs.

### getRealOneofs

public List<Descriptors.OneofDescriptor> getRealOneofs()
Get a list of this message type's real oneofs.

### getExtensions

public List<Descriptors.FieldDescriptor> getExtensions()
Get a list of this message type's extensions.

### getNestedTypes

public List<Descriptors.Descriptor> getNestedTypes()
Get a list of message types nested within this one.

### getEnumTypes

public List<Descriptors.EnumDescriptor> getEnumTypes()
Get a list of enum types nested within this one.

### isExtensionNumber

public boolean isExtensionNumber(int number)
Determines if the given field number is an extension.

### isReservedNumber

public boolean isReservedNumber(int number)
Determines if the given field number is reserved.

### isReservedName

public boolean isReservedName(String name)
Determines if the given field name is reserved.

### isExtendable

public boolean isExtendable()
Indicates whether the message can be extended. That is, whether it has any "extensions x to y" ranges declared on it.

### findFieldByName

public Descriptors.FieldDescriptor findFieldByName(String name)
Finds a field by name.

Parameters:
  `name` - The unqualified name of the field (e.g. "foo"). For protocol buffer messages that follow Google's guidance on naming this will be a snake case string, such as

      song_name

  .
Returns:
  The field's descriptor, or `null` if not found.

### findFieldByNumber

public Descriptors.FieldDescriptor findFieldByNumber(int number)
Finds a field by field number.

Parameters:
  `number` - The field number within this message type.
Returns:
  The field's descriptor, or `null` if not found.

### findNestedTypeByName

public Descriptors.Descriptor findNestedTypeByName(String name)
Finds a nested message type by name.

Parameters:
  `name` - The unqualified name of the nested type such as "Foo"
Returns:
  The types's descriptor, or `null` if not found.

### findEnumTypeByName

public Descriptors.EnumDescriptor findEnumTypeByName(String name)
Finds a nested enum type by name.

Parameters:
  `name` - The unqualified name of the nested type such as "Foo"
Returns:
  The types's descriptor, or `null` if not found.