# Class Option.Builder (3.19.4)

    public static final class Option.Builder extends GeneratedMessageLite.Builder<Option,Option.Builder> implements OptionOrBuilder

A protocol buffer option, which can be attached to a message, field,
enumeration, etc.

Protobuf type `google.protobuf.Option`

## Inheritance

[java.lang.Object](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html) \> [AbstractMessageLite.Builder\<MessageType,BuilderType\>](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.AbstractMessageLite.Builder) \> [GeneratedMessageLite.Builder](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.GeneratedMessageLite.Builder) \> Option.Builder

## Implements

[OptionOrBuilder](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.OptionOrBuilder)

## Inherited Members

[AbstractMessageLite.Builder.\<T\>addAll(Iterable\<T\>,Collection\<? super T\>)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.AbstractMessageLite.Builder#com_google_protobuf_AbstractMessageLite_Builder__T_addAll_java_lang_Iterable_T__java_util_Collection___super_T__) [AbstractMessageLite.Builder.\<T\>addAll(Iterable\<T\>,List\<? super T\>)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.AbstractMessageLite.Builder#com_google_protobuf_AbstractMessageLite_Builder__T_addAll_java_lang_Iterable_T__java_util_List___super_T__) [AbstractMessageLite.Builder.mergeDelimitedFrom(InputStream)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.AbstractMessageLite.Builder#com_google_protobuf_AbstractMessageLite_Builder_mergeDelimitedFrom_java_io_InputStream_) [AbstractMessageLite.Builder.mergeDelimitedFrom(InputStream,ExtensionRegistryLite)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.AbstractMessageLite.Builder#com_google_protobuf_AbstractMessageLite_Builder_mergeDelimitedFrom_java_io_InputStream_com_google_protobuf_ExtensionRegistryLite_) [AbstractMessageLite.Builder.mergeFrom(byte\[\])](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.AbstractMessageLite.Builder#com_google_protobuf_AbstractMessageLite_Builder_mergeFrom_byte___) [AbstractMessageLite.Builder.mergeFrom(byte\[\],ExtensionRegistryLite)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.AbstractMessageLite.Builder#com_google_protobuf_AbstractMessageLite_Builder_mergeFrom_byte___com_google_protobuf_ExtensionRegistryLite_) [AbstractMessageLite.Builder.mergeFrom(ByteString)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.AbstractMessageLite.Builder#com_google_protobuf_AbstractMessageLite_Builder_mergeFrom_com_google_protobuf_ByteString_) [AbstractMessageLite.Builder.mergeFrom(ByteString,ExtensionRegistryLite)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.AbstractMessageLite.Builder#com_google_protobuf_AbstractMessageLite_Builder_mergeFrom_com_google_protobuf_ByteString_com_google_protobuf_ExtensionRegistryLite_) [AbstractMessageLite.Builder.mergeFrom(CodedInputStream)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.AbstractMessageLite.Builder#com_google_protobuf_AbstractMessageLite_Builder_mergeFrom_com_google_protobuf_CodedInputStream_) [AbstractMessageLite.Builder.mergeFrom(MessageLite)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.AbstractMessageLite.Builder#com_google_protobuf_AbstractMessageLite_Builder_mergeFrom_com_google_protobuf_MessageLite_) [AbstractMessageLite.Builder.mergeFrom(InputStream)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.AbstractMessageLite.Builder#com_google_protobuf_AbstractMessageLite_Builder_mergeFrom_java_io_InputStream_) [AbstractMessageLite.Builder.mergeFrom(InputStream,ExtensionRegistryLite)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.AbstractMessageLite.Builder#com_google_protobuf_AbstractMessageLite_Builder_mergeFrom_java_io_InputStream_com_google_protobuf_ExtensionRegistryLite_) [AbstractMessageLite.Builder.newUninitializedMessageException(MessageLite)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.AbstractMessageLite.Builder#com_google_protobuf_AbstractMessageLite_Builder_newUninitializedMessageException_com_google_protobuf_MessageLite_) [GeneratedMessageLite.Builder.build()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.GeneratedMessageLite.Builder#com_google_protobuf_GeneratedMessageLite_Builder_build__) [GeneratedMessageLite.Builder.buildPartial()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.GeneratedMessageLite.Builder#com_google_protobuf_GeneratedMessageLite_Builder_buildPartial__) [GeneratedMessageLite.Builder.clear()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.GeneratedMessageLite.Builder#com_google_protobuf_GeneratedMessageLite_Builder_clear__) [GeneratedMessageLite.Builder.clone()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.GeneratedMessageLite.Builder#com_google_protobuf_GeneratedMessageLite_Builder_clone__) [GeneratedMessageLite.Builder.copyOnWrite()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.GeneratedMessageLite.Builder#com_google_protobuf_GeneratedMessageLite_Builder_copyOnWrite__) [GeneratedMessageLite.Builder.copyOnWriteInternal()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.GeneratedMessageLite.Builder#com_google_protobuf_GeneratedMessageLite_Builder_copyOnWriteInternal__) [GeneratedMessageLite.Builder.getDefaultInstanceForType()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.GeneratedMessageLite.Builder#com_google_protobuf_GeneratedMessageLite_Builder_getDefaultInstanceForType__) [GeneratedMessageLite.Builder.internalMergeFrom(MessageType)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.GeneratedMessageLite.Builder#com_google_protobuf_GeneratedMessageLite_Builder_internalMergeFrom_MessageType_) [GeneratedMessageLite.Builder.isInitialized()](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.GeneratedMessageLite.Builder#com_google_protobuf_GeneratedMessageLite_Builder_isInitialized__) [GeneratedMessageLite.Builder.mergeFrom(MessageType)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.GeneratedMessageLite.Builder#com_google_protobuf_GeneratedMessageLite_Builder_mergeFrom_MessageType_) [GeneratedMessageLite.Builder.mergeFrom(byte\[\],int,int)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.GeneratedMessageLite.Builder#com_google_protobuf_GeneratedMessageLite_Builder_mergeFrom_byte___int_int_) [GeneratedMessageLite.Builder.mergeFrom(byte\[\],int,int,ExtensionRegistryLite)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.GeneratedMessageLite.Builder#com_google_protobuf_GeneratedMessageLite_Builder_mergeFrom_byte___int_int_com_google_protobuf_ExtensionRegistryLite_) [GeneratedMessageLite.Builder.mergeFrom(CodedInputStream,ExtensionRegistryLite)](https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.GeneratedMessageLite.Builder#com_google_protobuf_GeneratedMessageLite_Builder_mergeFrom_com_google_protobuf_CodedInputStream_com_google_protobuf_ExtensionRegistryLite_) [Object.equals(Object)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#equals-java.lang.Object-) [Object.finalize()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#finalize--) [Object.getClass()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#getClass--) [Object.hashCode()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#hashCode--) [Object.notify()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notify--) [Object.notifyAll()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#notifyAll--) [Object.toString()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#toString--) [Object.wait()](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait--) [Object.wait(long)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-) [Object.wait(long,int)](https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html#wait-long-int-)

## Methods

### clearName()

    public Option.Builder clearName()

The option's name. For protobuf built-in options (options defined in
descriptor.proto), this is the short name. For example, `"map_entry"`.
For custom options, it should be the fully-qualified name. For example,
`"google.api.http"`.

`string name = 1;`

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Option.Builder` | This builder for chaining. |

### clearValue()

    public Option.Builder clearValue()

The option's value packed in an Any message. If the value is a primitive,
the corresponding wrapper type defined in google/protobuf/wrappers.proto
should be used. If the value is an enum, it should be stored as an int32
value using the google.protobuf.Int32Value type.

`.google.protobuf.Any value = 2;`

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

### getName()

    public String getName()

The option's name. For protobuf built-in options (options defined in
descriptor.proto), this is the short name. For example, `"map_entry"`.
For custom options, it should be the fully-qualified name. For example,
`"google.api.http"`.

`string name = 1;`

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.oracle.com/javase/8/docs/api/java/lang/String.html` | The name. |

### getNameBytes()

    public ByteString getNameBytes()

The option's name. For protobuf built-in options (options defined in
descriptor.proto), this is the short name. For example, `"map_entry"`.
For custom options, it should be the fully-qualified name. For example,
`"google.api.http"`.

`string name = 1;`

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.ByteString` | The bytes for name. |

### getValue()

    public Any getValue()

The option's value packed in an Any message. If the value is a primitive,
the corresponding wrapper type defined in google/protobuf/wrappers.proto
should be used. If the value is an enum, it should be stored as an int32
value using the google.protobuf.Int32Value type.

`.google.protobuf.Any value = 2;`

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

### hasValue()

    public boolean hasValue()

The option's value packed in an Any message. If the value is a primitive,
the corresponding wrapper type defined in google/protobuf/wrappers.proto
should be used. If the value is an enum, it should be stored as an int32
value using the google.protobuf.Int32Value type.

`.google.protobuf.Any value = 2;`

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

### mergeValue(Any value)

    public Option.Builder mergeValue(Any value)

The option's value packed in an Any message. If the value is a primitive,
the corresponding wrapper type defined in google/protobuf/wrappers.proto
should be used. If the value is an enum, it should be stored as an int32
value using the google.protobuf.Int32Value type.

`.google.protobuf.Any value = 2;`

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `value` | `https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Any` |

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

### setName(String value)

    public Option.Builder setName(String value)

The option's name. For protobuf built-in options (options defined in
descriptor.proto), this is the short name. For example, `"map_entry"`.
For custom options, it should be the fully-qualified name. For example,
`"google.api.http"`.

`string name = 1;`

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `value` | `https://docs.oracle.com/javase/8/docs/api/java/lang/String.html` The name to set. |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Option.Builder` | This builder for chaining. |

### setNameBytes(ByteString value)

    public Option.Builder setNameBytes(ByteString value)

The option's name. For protobuf built-in options (options defined in
descriptor.proto), this is the short name. For example, `"map_entry"`.
For custom options, it should be the fully-qualified name. For example,
`"google.api.http"`.

`string name = 1;`

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `value` | `https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.ByteString` The bytes for name to set. |

| **Returns** ||
|---|---|
| **Type** | **Description** |
| `https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Option.Builder` | This builder for chaining. |

### setValue(Any value)

    public Option.Builder setValue(Any value)

The option's value packed in an Any message. If the value is a primitive,
the corresponding wrapper type defined in google/protobuf/wrappers.proto
should be used. If the value is an enum, it should be stored as an int32
value using the google.protobuf.Int32Value type.

`.google.protobuf.Any value = 2;`

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `value` | `https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Any` |

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

### setValue(Any.Builder builderForValue)

    public Option.Builder setValue(Any.Builder builderForValue)

The option's value packed in an Any message. If the value is a primitive,
the corresponding wrapper type defined in google/protobuf/wrappers.proto
should be used. If the value is an enum, it should be stored as an int32
value using the google.protobuf.Int32Value type.

`.google.protobuf.Any value = 2;`

| **Parameter** ||
|---|---|
| **Name** | **Description** |
| `builderForValue` | `https://docs.cloud.google.com/java/docs/reference/protobuf/latest/com.google.protobuf.Any.Builder` |

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