# Interface DescriptorProtos.MessageOptionsOrBuilder (3.19.4)

    public static interface DescriptorProtos.MessageOptionsOrBuilder extends GeneratedMessageV3.ExtendableMessageOrBuilder<DescriptorProtos.MessageOptions>

## Implements

com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder\<com.google.protobuf.DescriptorProtos.MessageOptions\>

## Methods

### getDeprecated()

    public abstract boolean getDeprecated()

Is this message deprecated?
Depending on the target platform, this can emit Deprecated annotations
for the message, or it will be completely ignored; in the very least,
this is a formalization for deprecating messages.

`optional bool deprecated = 3 [default = false];`

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` | The deprecated. |

### getMapEntry()

    public abstract boolean getMapEntry()

Whether the message is an automatically generated map entry type for the
maps field.
For maps fields:
map\<KeyType, ValueType\> map_field = 1;
The parsed descriptor looks like:
message MapFieldEntry {
option map_entry = true;
optional KeyType key = 1;
optional ValueType value = 2;
}
repeated MapFieldEntry map_field = 1;
Implementations may choose not to generate the map_entry=true message, but
use a native map in the target language to hold the keys and values.
The reflection APIs in such implementations still need to work as
if the field is a repeated message field.
NOTE: Do not set the option in .proto files. Always use the maps syntax
instead. The option should only be implicitly set by the proto compiler
parser.

`optional bool map_entry = 7;`

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` | The mapEntry. |

### getMessageSetWireFormat()

    public abstract boolean getMessageSetWireFormat()

Set true to use the old proto1 MessageSet wire format for extensions.
This is provided for backwards-compatibility with the MessageSet wire
format. You should not use this for any other reason: It's less
efficient, has fewer features, and is more complicated.
The message must be defined exactly as follows:
message Foo {
option message_set_wire_format = true;
extensions 4 to max;
}
Note that the message cannot have any defined fields; MessageSets only
have extensions.
All extensions of your type must be singular messages; e.g. they cannot
be int32s, enums, or repeated messages.
Because this is an option, the above two restrictions are not enforced by
the protocol compiler.

`optional bool message_set_wire_format = 1 [default = false];`

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` | The messageSetWireFormat. |

### getNoStandardDescriptorAccessor()

    public abstract boolean getNoStandardDescriptorAccessor()

Disables the generation of the standard "descriptor()" accessor, which can
conflict with a field of the same name. This is meant to make migration
from proto1 easier; new code should avoid fields named "descriptor".

`optional bool no_standard_descriptor_accessor = 2 [default = false];`

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` | The noStandardDescriptorAccessor. |

### getUninterpretedOption(int index)

    public abstract DescriptorProtos.UninterpretedOption getUninterpretedOption(int index)

The parser stores options it doesn't recognize here. See above.

`repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;`

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `index` | `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.DescriptorProtos.UninterpretedOption` |   |

### getUninterpretedOptionCount()

    public abstract int getUninterpretedOptionCount()

The parser stores options it doesn't recognize here. See above.

`repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;`

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |   |

### getUninterpretedOptionList()

    public abstract List<DescriptorProtos.UninterpretedOption> getUninterpretedOptionList()

The parser stores options it doesn't recognize here. See above.

`repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;`

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/util/List.html<https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.DescriptorProtos.UninterpretedOption>` |   |

### getUninterpretedOptionOrBuilder(int index)

    public abstract DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(int index)

The parser stores options it doesn't recognize here. See above.

`repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;`

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `index` | `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder` |   |

### getUninterpretedOptionOrBuilderList()

    public abstract List<? extends DescriptorProtos.UninterpretedOptionOrBuilder> getUninterpretedOptionOrBuilderList()

The parser stores options it doesn't recognize here. See above.

`repeated .google.protobuf.UninterpretedOption uninterpreted_option = 999;`

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/util/List.html<? extends com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder>` |   |

### hasDeprecated()

    public abstract boolean hasDeprecated()

Is this message deprecated?
Depending on the target platform, this can emit Deprecated annotations
for the message, or it will be completely ignored; in the very least,
this is a formalization for deprecating messages.

`optional bool deprecated = 3 [default = false];`

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` | Whether the deprecated field is set. |

### hasMapEntry()

    public abstract boolean hasMapEntry()

Whether the message is an automatically generated map entry type for the
maps field.
For maps fields:
map\<KeyType, ValueType\> map_field = 1;
The parsed descriptor looks like:
message MapFieldEntry {
option map_entry = true;
optional KeyType key = 1;
optional ValueType value = 2;
}
repeated MapFieldEntry map_field = 1;
Implementations may choose not to generate the map_entry=true message, but
use a native map in the target language to hold the keys and values.
The reflection APIs in such implementations still need to work as
if the field is a repeated message field.
NOTE: Do not set the option in .proto files. Always use the maps syntax
instead. The option should only be implicitly set by the proto compiler
parser.

`optional bool map_entry = 7;`

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` | Whether the mapEntry field is set. |

### hasMessageSetWireFormat()

    public abstract boolean hasMessageSetWireFormat()

Set true to use the old proto1 MessageSet wire format for extensions.
This is provided for backwards-compatibility with the MessageSet wire
format. You should not use this for any other reason: It's less
efficient, has fewer features, and is more complicated.
The message must be defined exactly as follows:
message Foo {
option message_set_wire_format = true;
extensions 4 to max;
}
Note that the message cannot have any defined fields; MessageSets only
have extensions.
All extensions of your type must be singular messages; e.g. they cannot
be int32s, enums, or repeated messages.
Because this is an option, the above two restrictions are not enforced by
the protocol compiler.

`optional bool message_set_wire_format = 1 [default = false];`

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` | Whether the messageSetWireFormat field is set. |

### hasNoStandardDescriptorAccessor()

    public abstract boolean hasNoStandardDescriptorAccessor()

Disables the generation of the standard "descriptor()" accessor, which can
conflict with a field of the same name. This is meant to make migration
from proto1 easier; new code should avoid fields named "descriptor".

`optional bool no_standard_descriptor_accessor = 2 [default = false];`

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html` | Whether the noStandardDescriptorAccessor field is set. |