Descriptors.Descriptor
Date: 2017-07-08

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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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.
    `boolean` | `isReservedName(java.lang.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 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.

    - #### 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.

    - #### 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.