DescriptorProtos.FieldOptionsOrBuilder
Date: 2017-07-08

com.google.protobuf

## Interface DescriptorProtos.FieldOptionsOrBuilder

- All Superinterfaces:
    GeneratedMessageV3.ExtendableMessageOrBuilder<DescriptorProtos.FieldOptions>, MessageLiteOrBuilder, MessageOrBuilder
  All Known Implementing Classes:
    DescriptorProtos.FieldOptions, DescriptorProtos.FieldOptions.Builder
  Enclosing class:
    DescriptorProtos

      public static interface DescriptorProtos.FieldOptionsOrBuilder
      extends GeneratedMessageV3.ExtendableMessageOrBuilder<DescriptorProtos.FieldOptions>

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `DescriptorProtos.FieldOptions.CType` | `getCtype()` The ctype option instructs the C++ code generator to use a different representation of the field than it normally would.
    `boolean` | `getDeprecated()` Is this field deprecated? Depending on the target platform, this can emit Deprecated annotations for accessors, or it will be completely ignored; in the very least, this is a formalization for deprecating fields.
    `DescriptorProtos.FieldOptions.JSType` | `getJstype()` The jstype option determines the JavaScript type used for values of the field.
    `boolean` | `getLazy()` Should this field be parsed lazily? Lazy applies only to message-type fields.
    `boolean` | `getPacked()` The packed option can be enabled for repeated primitive fields to enable a more efficient representation on the wire.
    `DescriptorProtos.UninterpretedOption` | `getUninterpretedOption(int index)` The parser stores options it doesn't recognize here.
    `int` | `getUninterpretedOptionCount()` The parser stores options it doesn't recognize here.
    `java.util.List<DescriptorProtos.UninterpretedOption>` | `getUninterpretedOptionList()` The parser stores options it doesn't recognize here.
    `DescriptorProtos.UninterpretedOptionOrBuilder` | `getUninterpretedOptionOrBuilder(int index)` The parser stores options it doesn't recognize here.
    `java.util.List<? extends DescriptorProtos.UninterpretedOptionOrBuilder>` | `getUninterpretedOptionOrBuilderList()` The parser stores options it doesn't recognize here.
    `boolean` | `getWeak()` For Google-internal migration only.
    `boolean` | `hasCtype()` The ctype option instructs the C++ code generator to use a different representation of the field than it normally would.
    `boolean` | `hasDeprecated()` Is this field deprecated? Depending on the target platform, this can emit Deprecated annotations for accessors, or it will be completely ignored; in the very least, this is a formalization for deprecating fields.
    `boolean` | `hasJstype()` The jstype option determines the JavaScript type used for values of the field.
    `boolean` | `hasLazy()` Should this field be parsed lazily? Lazy applies only to message-type fields.
    `boolean` | `hasPacked()` The packed option can be enabled for repeated primitive fields to enable a more efficient representation on the wire.
    `boolean` | `hasWeak()` For Google-internal migration only.

    - ### Methods inherited from interface com.google.protobuf.GeneratedMessageV3.ExtendableMessageOrBuilder

      `getDefaultInstanceForType, getExtension, getExtension, getExtension, getExtension, getExtension, getExtension, getExtensionCount, getExtensionCount, getExtensionCount, hasExtension, hasExtension, hasExtension`

    - ### Methods inherited from interface com.google.protobuf.MessageOrBuilder

      `findInitializationErrors, getAllFields, getDescriptorForType, getField, getInitializationErrorString, getOneofFieldDescriptor, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof`

    - ### Methods inherited from interface com.google.protobuf.MessageLiteOrBuilder

      `isInitialized`

- - ### Method Detail

    - #### hasCtype

          boolean hasCtype()

           The ctype option instructs the C++ code generator to use a different
           representation of the field than it normally would.  See the specific
           options below.  This option is not yet implemented in the open source
           release -- sorry, we'll try to include it in a future version!

      `optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];`

    - #### getCtype

          DescriptorProtos.FieldOptions.CType getCtype()

           The ctype option instructs the C++ code generator to use a different
           representation of the field than it normally would.  See the specific
           options below.  This option is not yet implemented in the open source
           release -- sorry, we'll try to include it in a future version!

      `optional .google.protobuf.FieldOptions.CType ctype = 1 [default = STRING];`

    - #### hasPacked

          boolean hasPacked()

           The packed option can be enabled for repeated primitive fields to enable
           a more efficient representation on the wire. Rather than repeatedly
           writing the tag and type for each element, the entire array is encoded as
           a single length-delimited blob. In proto3, only explicit setting it to
           false will avoid using packed encoding.

      `optional bool packed = 2;`

    - #### getPacked

          boolean getPacked()

           The packed option can be enabled for repeated primitive fields to enable
           a more efficient representation on the wire. Rather than repeatedly
           writing the tag and type for each element, the entire array is encoded as
           a single length-delimited blob. In proto3, only explicit setting it to
           false will avoid using packed encoding.

      `optional bool packed = 2;`

    - #### hasJstype

          boolean hasJstype()

           The jstype option determines the JavaScript type used for values of the
           field.  The option is permitted only for 64 bit integral and fixed types
           (int64, uint64, sint64, fixed64, sfixed64).  By default these types are
           represented as JavaScript strings.  This avoids loss of precision that can
           happen when a large value is converted to a floating point JavaScript
           numbers.  Specifying JS_NUMBER for the jstype causes the generated
           JavaScript code to use the JavaScript "number" type instead of strings.
           This option is an enum to permit additional types to be added,
           e.g. goog.math.Integer.

      `optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];`

    - #### getJstype

          DescriptorProtos.FieldOptions.JSType getJstype()

           The jstype option determines the JavaScript type used for values of the
           field.  The option is permitted only for 64 bit integral and fixed types
           (int64, uint64, sint64, fixed64, sfixed64).  By default these types are
           represented as JavaScript strings.  This avoids loss of precision that can
           happen when a large value is converted to a floating point JavaScript
           numbers.  Specifying JS_NUMBER for the jstype causes the generated
           JavaScript code to use the JavaScript "number" type instead of strings.
           This option is an enum to permit additional types to be added,
           e.g. goog.math.Integer.

      `optional .google.protobuf.FieldOptions.JSType jstype = 6 [default = JS_NORMAL];`

    - #### hasLazy

          boolean hasLazy()

           Should this field be parsed lazily?  Lazy applies only to message-type
           fields.  It means that when the outer message is initially parsed, the
           inner message's contents will not be parsed but instead stored in encoded
           form.  The inner message will actually be parsed when it is first accessed.
           This is only a hint.  Implementations are free to choose whether to use
           eager or lazy parsing regardless of the value of this option.  However,
           setting this option true suggests that the protocol author believes that
           using lazy parsing on this field is worth the additional bookkeeping
           overhead typically needed to implement it.
           This option does not affect the public interface of any generated code;
           all method signatures remain the same.  Furthermore, thread-safety of the
           interface is not affected by this option; const methods remain safe to
           call from multiple threads concurrently, while non-const methods continue
           to require exclusive access.
           Note that implementations may choose not to check required fields within
           a lazy sub-message.  That is, calling IsInitialized() on the outer message
           may return true even if the inner message has missing required fields.
           This is necessary because otherwise the inner message would have to be
           parsed in order to perform the check, defeating the purpose of lazy
           parsing.  An implementation which chooses not to check required fields
           must be consistent about it.  That is, for any particular sub-message, the
           implementation must either *always* check its required fields, or *never*
           check its required fields, regardless of whether or not the message has
           been parsed.

      `optional bool lazy = 5 [default = false];`

    - #### getLazy

          boolean getLazy()

           Should this field be parsed lazily?  Lazy applies only to message-type
           fields.  It means that when the outer message is initially parsed, the
           inner message's contents will not be parsed but instead stored in encoded
           form.  The inner message will actually be parsed when it is first accessed.
           This is only a hint.  Implementations are free to choose whether to use
           eager or lazy parsing regardless of the value of this option.  However,
           setting this option true suggests that the protocol author believes that
           using lazy parsing on this field is worth the additional bookkeeping
           overhead typically needed to implement it.
           This option does not affect the public interface of any generated code;
           all method signatures remain the same.  Furthermore, thread-safety of the
           interface is not affected by this option; const methods remain safe to
           call from multiple threads concurrently, while non-const methods continue
           to require exclusive access.
           Note that implementations may choose not to check required fields within
           a lazy sub-message.  That is, calling IsInitialized() on the outer message
           may return true even if the inner message has missing required fields.
           This is necessary because otherwise the inner message would have to be
           parsed in order to perform the check, defeating the purpose of lazy
           parsing.  An implementation which chooses not to check required fields
           must be consistent about it.  That is, for any particular sub-message, the
           implementation must either *always* check its required fields, or *never*
           check its required fields, regardless of whether or not the message has
           been parsed.

      `optional bool lazy = 5 [default = false];`

    - #### hasDeprecated

          boolean hasDeprecated()

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

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

    - #### getDeprecated

          boolean getDeprecated()

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

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

    - #### hasWeak

          boolean hasWeak()

           For Google-internal migration only. Do not use.

      `optional bool weak = 10 [default = false];`

    - #### getWeak

          boolean getWeak()

           For Google-internal migration only. Do not use.

      `optional bool weak = 10 [default = false];`

    - #### getUninterpretedOptionList

          java.util.List<DescriptorProtos.UninterpretedOption> getUninterpretedOptionList()

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

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

    - #### getUninterpretedOption

          DescriptorProtos.UninterpretedOption getUninterpretedOption(int index)

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

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

    - #### getUninterpretedOptionCount

          int getUninterpretedOptionCount()

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

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

    - #### getUninterpretedOptionOrBuilderList

          java.util.List<? extends DescriptorProtos.UninterpretedOptionOrBuilder> getUninterpretedOptionOrBuilderList()

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

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

    - #### getUninterpretedOptionOrBuilder

          DescriptorProtos.UninterpretedOptionOrBuilder getUninterpretedOptionOrBuilder(int index)

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

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