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

All Methods Instance Methods Concrete Methods
`Descriptors.EnumDescriptor` `findEnumTypeByName​(java.lang.String name)` Finds a nested enum type by name.
`Descriptors.FieldDescriptor` `findFieldByName​(java.lang.String name)` Finds a field by name.
`Descriptors.FieldDescriptor` `findFieldByNumber​(int number)` Finds a field by field number.
`Descriptors.Descriptor` `findNestedTypeByName​(java.lang.String name)` Finds a nested message type by name.
`Descriptors.Descriptor` `getContainingType()` If this is a nested type, get the outer descriptor, otherwise null.
`java.util.List<Descriptors.EnumDescriptor>` `getEnumTypes()` Get a list of enum types nested within this one.
`java.util.List<Descriptors.FieldDescriptor>` `getExtensions()` Get a list of this message type's extensions.
`java.util.List<Descriptors.FieldDescriptor>` `getFields()` Get a list of this message type's fields.
`Descriptors.FileDescriptor` `getFile()` Get the `Descriptors.FileDescriptor` containing this descriptor.
`java.lang.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.
`java.lang.String` `getName()` Get the type's unqualified name.
`java.util.List<Descriptors.Descriptor>` `getNestedTypes()` Get a list of message types nested within this one.
`java.util.List<Descriptors.OneofDescriptor>` `getOneofs()` Get a list of this message type's oneofs.
`DescriptorProtos.MessageOptions` `getOptions()` Get the `MessageOptions`, defined in `descriptor.proto`.
`boolean` `isExtendable()` Indicates whether the message can be extended.
`boolean` `isExtensionNumber​(int number)` Determines if the given field number is an extension.
`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 Detail

#### 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 java.lang.String getName()

Get the type's unqualified name.

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

#### getFullName

    public java.lang.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 java.util.List<Descriptors.FieldDescriptor> getFields()

Get a list of this message type's fields.

#### getOneofs

    public java.util.List<Descriptors.OneofDescriptor> getOneofs()

Get a list of this message type's oneofs.

#### getExtensions

    public java.util.List<Descriptors.FieldDescriptor> getExtensions()

Get a list of this message type's extensions.

#### getNestedTypes

    public java.util.List<Descriptors.Descriptor> getNestedTypes()

Get a list of message types nested within this one.

#### getEnumTypes

    public java.util.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.

#### 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​(java.lang.String name)

Finds a field by name.

Parameters:
  `name` - The unqualified name of the field (e.g. "foo").
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​(java.lang.String name)

Finds a nested message type by name.

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

#### findEnumTypeByName

    public Descriptors.EnumDescriptor findEnumTypeByName​(java.lang.String name)

Finds a nested enum type by name.

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