Package com.google.protobuf

## Class DescriptorProtos.SourceCodeInfo.Location.Builder

- java.lang.Object
- - com.google.protobuf.AbstractMessageLite.Builder<BuilderType>
  - - com.google.protobuf.AbstractMessage.Builder<BuilderType>
    - - com.google.protobuf.GeneratedMessage.Builder<DescriptorProtos.SourceCodeInfo.Location.Builder>
      - - com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder

All Implemented Interfaces:
  `DescriptorProtos.SourceCodeInfo.LocationOrBuilder`, `Message.Builder`, `MessageLite.Builder`, `MessageLiteOrBuilder`, `MessageOrBuilder`, `java.lang.Cloneable`

Enclosing class:
  DescriptorProtos.SourceCodeInfo.Location

    public static final class DescriptorProtos.SourceCodeInfo.Location.Builder
    extends GeneratedMessage.Builder<DescriptorProtos.SourceCodeInfo.Location.Builder>
    implements DescriptorProtos.SourceCodeInfo.LocationOrBuilder

Protobuf type `google.protobuf.SourceCodeInfo.Location`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`DescriptorProtos.SourceCodeInfo.Location.Builder` `addAllPath​(java.lang.Iterable<? extends java.lang.Integer> values)` `repeated int32 path = 1 [packed = true];`
`DescriptorProtos.SourceCodeInfo.Location.Builder` `addAllSpan​(java.lang.Iterable<? extends java.lang.Integer> values)` `repeated int32 span = 2 [packed = true];`
`DescriptorProtos.SourceCodeInfo.Location.Builder` `addPath​(int value)` `repeated int32 path = 1 [packed = true];`
`DescriptorProtos.SourceCodeInfo.Location.Builder` `addSpan​(int value)` `repeated int32 span = 2 [packed = true];`
`DescriptorProtos.SourceCodeInfo.Location` `build()` Constructs the message based on the state of the Builder.
`DescriptorProtos.SourceCodeInfo.Location` `buildPartial()` Like `MessageLite.Builder.build()`, but does not throw an exception if the message is missing required fields.
`DescriptorProtos.SourceCodeInfo.Location.Builder` `clear()` Called by the initialization and clear code paths to allow subclasses to reset any of their builtin fields back to the initial values.
`DescriptorProtos.SourceCodeInfo.Location.Builder` `clearLeadingComments()` `optional string leading_comments = 3;`
`DescriptorProtos.SourceCodeInfo.Location.Builder` `clearPath()` `repeated int32 path = 1 [packed = true];`
`DescriptorProtos.SourceCodeInfo.Location.Builder` `clearSpan()` `repeated int32 span = 2 [packed = true];`
`DescriptorProtos.SourceCodeInfo.Location.Builder` `clearTrailingComments()` `optional string trailing_comments = 4;`
`DescriptorProtos.SourceCodeInfo.Location.Builder` `clone()` Clones the Builder.
`DescriptorProtos.SourceCodeInfo.Location` `getDefaultInstanceForType()` Get an instance of the type with no fields set.
`static Descriptors.Descriptor` `getDescriptor()`
`Descriptors.Descriptor` `getDescriptorForType()` Get the message's type's descriptor.
`java.lang.String` `getLeadingComments()` `optional string leading_comments = 3;`
`ByteString` `getLeadingCommentsBytes()` `optional string leading_comments = 3;`
`int` `getPath​(int index)` `repeated int32 path = 1 [packed = true];`
`int` `getPathCount()` `repeated int32 path = 1 [packed = true];`
`java.util.List<java.lang.Integer>` `getPathList()` `repeated int32 path = 1 [packed = true];`
`int` `getSpan​(int index)` `repeated int32 span = 2 [packed = true];`
`int` `getSpanCount()` `repeated int32 span = 2 [packed = true];`
`java.util.List<java.lang.Integer>` `getSpanList()` `repeated int32 span = 2 [packed = true];`
`java.lang.String` `getTrailingComments()` `optional string trailing_comments = 4;`
`ByteString` `getTrailingCommentsBytes()` `optional string trailing_comments = 4;`
`boolean` `hasLeadingComments()` `optional string leading_comments = 3;`
`boolean` `hasTrailingComments()` `optional string trailing_comments = 4;`
`protected GeneratedMessage.FieldAccessorTable` `internalGetFieldAccessorTable()` Get the FieldAccessorTable for this type.
`boolean` `isInitialized()` Returns true if all required fields in the message and all embedded messages are set, false otherwise.
`DescriptorProtos.SourceCodeInfo.Location.Builder` `mergeFrom​(CodedInputStream input, ExtensionRegistryLite extensionRegistry)` Like `MessageLite.Builder.mergeFrom(CodedInputStream)`, but also parses extensions.
`DescriptorProtos.SourceCodeInfo.Location.Builder` `mergeFrom​(DescriptorProtos.SourceCodeInfo.Location other)`
`DescriptorProtos.SourceCodeInfo.Location.Builder` `mergeFrom​(Message other)` Merge `other` into the message being built.
`DescriptorProtos.SourceCodeInfo.Location.Builder` `setLeadingComments​(java.lang.String value)` `optional string leading_comments = 3;`
`DescriptorProtos.SourceCodeInfo.Location.Builder` `setLeadingCommentsBytes​(ByteString value)` `optional string leading_comments = 3;`
`DescriptorProtos.SourceCodeInfo.Location.Builder` `setPath​(int index, int value)` `repeated int32 path = 1 [packed = true];`
`DescriptorProtos.SourceCodeInfo.Location.Builder` `setSpan​(int index, int value)` `repeated int32 span = 2 [packed = true];`
`DescriptorProtos.SourceCodeInfo.Location.Builder` `setTrailingComments​(java.lang.String value)` `optional string trailing_comments = 4;`
`DescriptorProtos.SourceCodeInfo.Location.Builder` `setTrailingCommentsBytes​(ByteString value)` `optional string trailing_comments = 4;`

### Methods inherited from class com.google.protobuf.GeneratedMessage.Builder

`addRepeatedField, clearField, clearOneof, getAllFields, getField, getFieldBuilder, getOneofFieldDescriptor, getParentForChildren, getRepeatedField, getRepeatedFieldCount, getUnknownFields, hasField, hasOneof, isClean, markClean, mergeUnknownFields, newBuilderForField, onBuilt, onChanged, parseUnknownField, setField, setRepeatedField, setUnknownFields`

### Methods inherited from class com.google.protobuf.AbstractMessage.Builder

`findInitializationErrors, getInitializationErrorString, mergeDelimitedFrom, mergeDelimitedFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, mergeFrom, newUninitializedMessageException, toString`

### Methods inherited from class com.google.protobuf.AbstractMessageLite.Builder

`addAll, newUninitializedMessageException`

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

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

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

### Method Detail

#### getDescriptor

    public static final Descriptors.Descriptor getDescriptor()

#### internalGetFieldAccessorTable

    protected GeneratedMessage.FieldAccessorTable internalGetFieldAccessorTable()

Description copied from class: `GeneratedMessage.Builder`
Get the FieldAccessorTable for this type. We can't have the message class pass this in to the constructor because of bootstrapping trouble with DescriptorProtos.

Specified by:
  `internalGetFieldAccessorTable` in class `GeneratedMessage.Builder<DescriptorProtos.SourceCodeInfo.Location.Builder>`

#### clear

    public DescriptorProtos.SourceCodeInfo.Location.Builder clear()

Description copied from class: `GeneratedMessage.Builder`
Called by the initialization and clear code paths to allow subclasses to reset any of their builtin fields back to the initial values.

Specified by:
  `clear` in interface `Message.Builder`
Specified by:
  `clear` in interface `MessageLite.Builder`
Overrides:
  `clear` in class `GeneratedMessage.Builder<DescriptorProtos.SourceCodeInfo.Location.Builder>`

#### clone

    public DescriptorProtos.SourceCodeInfo.Location.Builder clone()

Description copied from interface: `MessageLite.Builder`
Clones the Builder.

Specified by:
  `clone` in interface `Message.Builder`
Specified by:
  `clone` in interface `MessageLite.Builder`
Overrides:
  `clone` in class `GeneratedMessage.Builder<DescriptorProtos.SourceCodeInfo.Location.Builder>`
See Also:
  `Object.clone()`

#### getDescriptorForType

    public Descriptors.Descriptor getDescriptorForType()

Description copied from interface: `Message.Builder`
Get the message's type's descriptor. See `MessageOrBuilder.getDescriptorForType()`.

Specified by:
  `getDescriptorForType` in interface `Message.Builder`
Specified by:
  `getDescriptorForType` in interface `MessageOrBuilder`
Overrides:
  `getDescriptorForType` in class `GeneratedMessage.Builder<DescriptorProtos.SourceCodeInfo.Location.Builder>`

#### getDefaultInstanceForType

    public DescriptorProtos.SourceCodeInfo.Location getDefaultInstanceForType()

Description copied from interface: `MessageLiteOrBuilder`
Get an instance of the type with no fields set. Because no fields are set, all getters for singular fields will return default values and repeated fields will appear empty. This may or may not be a singleton. This differs from the `getDefaultInstance()` method of generated message classes in that this method is an abstract method of the `MessageLite` interface whereas `getDefaultInstance()` is a static method of a specific class. They return the same thing.

Specified by:
  `getDefaultInstanceForType` in interface `MessageLiteOrBuilder`
Specified by:
  `getDefaultInstanceForType` in interface `MessageOrBuilder`

#### build

    public DescriptorProtos.SourceCodeInfo.Location build()

Description copied from interface: `MessageLite.Builder`
Constructs the message based on the state of the Builder. Subsequent changes to the Builder will not affect the returned message.

Specified by:
  `build` in interface `Message.Builder`
Specified by:
  `build` in interface `MessageLite.Builder`

#### buildPartial

    public DescriptorProtos.SourceCodeInfo.Location buildPartial()

Description copied from interface: `MessageLite.Builder`
Like `MessageLite.Builder.build()`, but does not throw an exception if the message is missing required fields. Instead, a partial message is returned. Subsequent changes to the Builder will not affect the returned message.

Specified by:
  `buildPartial` in interface `Message.Builder`
Specified by:
  `buildPartial` in interface `MessageLite.Builder`

#### mergeFrom

    public DescriptorProtos.SourceCodeInfo.Location.Builder mergeFrom​(Message other)

Description copied from interface: `Message.Builder`
Merge `other` into the message being built. `other` must have the exact same type as `this` (i.e. `getDescriptorForType() == other.getDescriptorForType()`). Merging occurs as follows. For each field:
* For singular primitive fields, if the field is set in `other`, then `other`'s value overwrites the value in this message.
* For singular message fields, if the field is set in `other`, it is merged into the corresponding sub-message of this message using the same merging rules.
* For repeated fields, the elements in `other` are concatenated with the elements in this message. This is equivalent to the `Message::MergeFrom` method in C++.

Specified by:
  `mergeFrom` in interface `Message.Builder`
Overrides:
  `mergeFrom` in class `AbstractMessage.Builder<DescriptorProtos.SourceCodeInfo.Location.Builder>`

#### mergeFrom

    public DescriptorProtos.SourceCodeInfo.Location.Builder mergeFrom​(DescriptorProtos.SourceCodeInfo.Location other)

#### isInitialized

    public final boolean isInitialized()

Description copied from interface: `MessageLiteOrBuilder`
Returns true if all required fields in the message and all embedded messages are set, false otherwise.

See also: `MessageOrBuilder.getInitializationErrorString()`

Specified by:
  `isInitialized` in interface `MessageLiteOrBuilder`
Overrides:
  `isInitialized` in class `GeneratedMessage.Builder<DescriptorProtos.SourceCodeInfo.Location.Builder>`

#### mergeFrom

    public DescriptorProtos.SourceCodeInfo.Location.Builder mergeFrom​(CodedInputStream input,
                                                                      ExtensionRegistryLite extensionRegistry)
                                                               throws java.io.IOException

Description copied from interface: `MessageLite.Builder`
Like `MessageLite.Builder.mergeFrom(CodedInputStream)`, but also parses extensions. The extensions that you want to be able to parse must be registered in `extensionRegistry`. Extensions not in the registry will be treated as unknown fields.

Specified by:
  `mergeFrom` in interface `Message.Builder`
Specified by:
  `mergeFrom` in interface `MessageLite.Builder`
Overrides:
  `mergeFrom` in class `AbstractMessage.Builder<DescriptorProtos.SourceCodeInfo.Location.Builder>`
Throws:
  `java.io.IOException`

#### getPathList

    public java.util.List<java.lang.Integer> getPathList()

`repeated int32 path = 1 [packed = true];`

     Identifies which part of the FileDescriptorProto was defined at this
     location.
     Each element is a field number or an index.  They form a path from
     the root FileDescriptorProto to the place where the definition.  For
     example, this path:
       [ 4, 3, 2, 7, 1 ]
     refers to:
       file.message_type(3)  // 4, 3
           .field(7)         // 2, 7
           .name()           // 1
     This is because FileDescriptorProto.message_type has field number 4:
       repeated DescriptorProto message_type = 4;
     and DescriptorProto.field has field number 2:
       repeated FieldDescriptorProto field = 2;
     and FieldDescriptorProto.name has field number 1:
       optional string name = 1;
     Thus, the above path gives the location of a field name.  If we removed
     the last element:
       [ 4, 3, 2, 7 ]
     this path refers to the whole field declaration (from the beginning
     of the label to the terminating semicolon).

Specified by:
  `getPathList` in interface `DescriptorProtos.SourceCodeInfo.LocationOrBuilder`

#### getPathCount

    public int getPathCount()

`repeated int32 path = 1 [packed = true];`

     Identifies which part of the FileDescriptorProto was defined at this
     location.
     Each element is a field number or an index.  They form a path from
     the root FileDescriptorProto to the place where the definition.  For
     example, this path:
       [ 4, 3, 2, 7, 1 ]
     refers to:
       file.message_type(3)  // 4, 3
           .field(7)         // 2, 7
           .name()           // 1
     This is because FileDescriptorProto.message_type has field number 4:
       repeated DescriptorProto message_type = 4;
     and DescriptorProto.field has field number 2:
       repeated FieldDescriptorProto field = 2;
     and FieldDescriptorProto.name has field number 1:
       optional string name = 1;
     Thus, the above path gives the location of a field name.  If we removed
     the last element:
       [ 4, 3, 2, 7 ]
     this path refers to the whole field declaration (from the beginning
     of the label to the terminating semicolon).

Specified by:
  `getPathCount` in interface `DescriptorProtos.SourceCodeInfo.LocationOrBuilder`

#### getPath

    public int getPath​(int index)

`repeated int32 path = 1 [packed = true];`

     Identifies which part of the FileDescriptorProto was defined at this
     location.
     Each element is a field number or an index.  They form a path from
     the root FileDescriptorProto to the place where the definition.  For
     example, this path:
       [ 4, 3, 2, 7, 1 ]
     refers to:
       file.message_type(3)  // 4, 3
           .field(7)         // 2, 7
           .name()           // 1
     This is because FileDescriptorProto.message_type has field number 4:
       repeated DescriptorProto message_type = 4;
     and DescriptorProto.field has field number 2:
       repeated FieldDescriptorProto field = 2;
     and FieldDescriptorProto.name has field number 1:
       optional string name = 1;
     Thus, the above path gives the location of a field name.  If we removed
     the last element:
       [ 4, 3, 2, 7 ]
     this path refers to the whole field declaration (from the beginning
     of the label to the terminating semicolon).

Specified by:
  `getPath` in interface `DescriptorProtos.SourceCodeInfo.LocationOrBuilder`

#### setPath

    public DescriptorProtos.SourceCodeInfo.Location.Builder setPath​(int index,
                                                                    int value)

`repeated int32 path = 1 [packed = true];`

     Identifies which part of the FileDescriptorProto was defined at this
     location.
     Each element is a field number or an index.  They form a path from
     the root FileDescriptorProto to the place where the definition.  For
     example, this path:
       [ 4, 3, 2, 7, 1 ]
     refers to:
       file.message_type(3)  // 4, 3
           .field(7)         // 2, 7
           .name()           // 1
     This is because FileDescriptorProto.message_type has field number 4:
       repeated DescriptorProto message_type = 4;
     and DescriptorProto.field has field number 2:
       repeated FieldDescriptorProto field = 2;
     and FieldDescriptorProto.name has field number 1:
       optional string name = 1;
     Thus, the above path gives the location of a field name.  If we removed
     the last element:
       [ 4, 3, 2, 7 ]
     this path refers to the whole field declaration (from the beginning
     of the label to the terminating semicolon).

#### addPath

    public DescriptorProtos.SourceCodeInfo.Location.Builder addPath​(int value)

`repeated int32 path = 1 [packed = true];`

     Identifies which part of the FileDescriptorProto was defined at this
     location.
     Each element is a field number or an index.  They form a path from
     the root FileDescriptorProto to the place where the definition.  For
     example, this path:
       [ 4, 3, 2, 7, 1 ]
     refers to:
       file.message_type(3)  // 4, 3
           .field(7)         // 2, 7
           .name()           // 1
     This is because FileDescriptorProto.message_type has field number 4:
       repeated DescriptorProto message_type = 4;
     and DescriptorProto.field has field number 2:
       repeated FieldDescriptorProto field = 2;
     and FieldDescriptorProto.name has field number 1:
       optional string name = 1;
     Thus, the above path gives the location of a field name.  If we removed
     the last element:
       [ 4, 3, 2, 7 ]
     this path refers to the whole field declaration (from the beginning
     of the label to the terminating semicolon).

#### addAllPath

    public DescriptorProtos.SourceCodeInfo.Location.Builder addAllPath​(java.lang.Iterable<? extends java.lang.Integer> values)

`repeated int32 path = 1 [packed = true];`

     Identifies which part of the FileDescriptorProto was defined at this
     location.
     Each element is a field number or an index.  They form a path from
     the root FileDescriptorProto to the place where the definition.  For
     example, this path:
       [ 4, 3, 2, 7, 1 ]
     refers to:
       file.message_type(3)  // 4, 3
           .field(7)         // 2, 7
           .name()           // 1
     This is because FileDescriptorProto.message_type has field number 4:
       repeated DescriptorProto message_type = 4;
     and DescriptorProto.field has field number 2:
       repeated FieldDescriptorProto field = 2;
     and FieldDescriptorProto.name has field number 1:
       optional string name = 1;
     Thus, the above path gives the location of a field name.  If we removed
     the last element:
       [ 4, 3, 2, 7 ]
     this path refers to the whole field declaration (from the beginning
     of the label to the terminating semicolon).

#### clearPath

    public DescriptorProtos.SourceCodeInfo.Location.Builder clearPath()

`repeated int32 path = 1 [packed = true];`

     Identifies which part of the FileDescriptorProto was defined at this
     location.
     Each element is a field number or an index.  They form a path from
     the root FileDescriptorProto to the place where the definition.  For
     example, this path:
       [ 4, 3, 2, 7, 1 ]
     refers to:
       file.message_type(3)  // 4, 3
           .field(7)         // 2, 7
           .name()           // 1
     This is because FileDescriptorProto.message_type has field number 4:
       repeated DescriptorProto message_type = 4;
     and DescriptorProto.field has field number 2:
       repeated FieldDescriptorProto field = 2;
     and FieldDescriptorProto.name has field number 1:
       optional string name = 1;
     Thus, the above path gives the location of a field name.  If we removed
     the last element:
       [ 4, 3, 2, 7 ]
     this path refers to the whole field declaration (from the beginning
     of the label to the terminating semicolon).

#### getSpanList

    public java.util.List<java.lang.Integer> getSpanList()

`repeated int32 span = 2 [packed = true];`

     Always has exactly three or four elements: start line, start column,
     end line (optional, otherwise assumed same as start line), end column.
     These are packed into a single field for efficiency.  Note that line
     and column numbers are zero-based -- typically you will want to add
     1 to each before displaying to a user.

Specified by:
  `getSpanList` in interface `DescriptorProtos.SourceCodeInfo.LocationOrBuilder`

#### getSpanCount

    public int getSpanCount()

`repeated int32 span = 2 [packed = true];`

     Always has exactly three or four elements: start line, start column,
     end line (optional, otherwise assumed same as start line), end column.
     These are packed into a single field for efficiency.  Note that line
     and column numbers are zero-based -- typically you will want to add
     1 to each before displaying to a user.

Specified by:
  `getSpanCount` in interface `DescriptorProtos.SourceCodeInfo.LocationOrBuilder`

#### getSpan

    public int getSpan​(int index)

`repeated int32 span = 2 [packed = true];`

     Always has exactly three or four elements: start line, start column,
     end line (optional, otherwise assumed same as start line), end column.
     These are packed into a single field for efficiency.  Note that line
     and column numbers are zero-based -- typically you will want to add
     1 to each before displaying to a user.

Specified by:
  `getSpan` in interface `DescriptorProtos.SourceCodeInfo.LocationOrBuilder`

#### setSpan

    public DescriptorProtos.SourceCodeInfo.Location.Builder setSpan​(int index,
                                                                    int value)

`repeated int32 span = 2 [packed = true];`

     Always has exactly three or four elements: start line, start column,
     end line (optional, otherwise assumed same as start line), end column.
     These are packed into a single field for efficiency.  Note that line
     and column numbers are zero-based -- typically you will want to add
     1 to each before displaying to a user.

#### addSpan

    public DescriptorProtos.SourceCodeInfo.Location.Builder addSpan​(int value)

`repeated int32 span = 2 [packed = true];`

     Always has exactly three or four elements: start line, start column,
     end line (optional, otherwise assumed same as start line), end column.
     These are packed into a single field for efficiency.  Note that line
     and column numbers are zero-based -- typically you will want to add
     1 to each before displaying to a user.

#### addAllSpan

    public DescriptorProtos.SourceCodeInfo.Location.Builder addAllSpan​(java.lang.Iterable<? extends java.lang.Integer> values)

`repeated int32 span = 2 [packed = true];`

     Always has exactly three or four elements: start line, start column,
     end line (optional, otherwise assumed same as start line), end column.
     These are packed into a single field for efficiency.  Note that line
     and column numbers are zero-based -- typically you will want to add
     1 to each before displaying to a user.

#### clearSpan

    public DescriptorProtos.SourceCodeInfo.Location.Builder clearSpan()

`repeated int32 span = 2 [packed = true];`

     Always has exactly three or four elements: start line, start column,
     end line (optional, otherwise assumed same as start line), end column.
     These are packed into a single field for efficiency.  Note that line
     and column numbers are zero-based -- typically you will want to add
     1 to each before displaying to a user.

#### hasLeadingComments

    public boolean hasLeadingComments()

`optional string leading_comments = 3;`

     If this SourceCodeInfo represents a complete declaration, these are any
     comments appearing before and after the declaration which appear to be
     attached to the declaration.
     A series of line comments appearing on consecutive lines, with no other
     tokens appearing on those lines, will be treated as a single comment.
     Only the comment content is provided; comment markers (e.g. //) are
     stripped out.  For block comments, leading whitespace and an asterisk
     will be stripped from the beginning of each line other than the first.
     Newlines are included in the output.
     Examples:
       optional int32 foo = 1;  // Comment attached to foo.
       // Comment attached to bar.
       optional int32 bar = 2;
       optional string baz = 3;
       // Comment attached to baz.
       // Another line attached to baz.
       // Comment attached to qux.
       //
       // Another line attached to qux.
       optional double qux = 4;
       optional string corge = 5;
       /* Block comment attached
        * to corge.  Leading asterisks
        * will be removed. */
       /* Block comment attached to
        * grault. */
       optional int32 grault = 6;

Specified by:
  `hasLeadingComments` in interface `DescriptorProtos.SourceCodeInfo.LocationOrBuilder`

#### getLeadingComments

    public java.lang.String getLeadingComments()

`optional string leading_comments = 3;`

     If this SourceCodeInfo represents a complete declaration, these are any
     comments appearing before and after the declaration which appear to be
     attached to the declaration.
     A series of line comments appearing on consecutive lines, with no other
     tokens appearing on those lines, will be treated as a single comment.
     Only the comment content is provided; comment markers (e.g. //) are
     stripped out.  For block comments, leading whitespace and an asterisk
     will be stripped from the beginning of each line other than the first.
     Newlines are included in the output.
     Examples:
       optional int32 foo = 1;  // Comment attached to foo.
       // Comment attached to bar.
       optional int32 bar = 2;
       optional string baz = 3;
       // Comment attached to baz.
       // Another line attached to baz.
       // Comment attached to qux.
       //
       // Another line attached to qux.
       optional double qux = 4;
       optional string corge = 5;
       /* Block comment attached
        * to corge.  Leading asterisks
        * will be removed. */
       /* Block comment attached to
        * grault. */
       optional int32 grault = 6;

Specified by:
  `getLeadingComments` in interface `DescriptorProtos.SourceCodeInfo.LocationOrBuilder`

#### getLeadingCommentsBytes

    public ByteString getLeadingCommentsBytes()

`optional string leading_comments = 3;`

     If this SourceCodeInfo represents a complete declaration, these are any
     comments appearing before and after the declaration which appear to be
     attached to the declaration.
     A series of line comments appearing on consecutive lines, with no other
     tokens appearing on those lines, will be treated as a single comment.
     Only the comment content is provided; comment markers (e.g. //) are
     stripped out.  For block comments, leading whitespace and an asterisk
     will be stripped from the beginning of each line other than the first.
     Newlines are included in the output.
     Examples:
       optional int32 foo = 1;  // Comment attached to foo.
       // Comment attached to bar.
       optional int32 bar = 2;
       optional string baz = 3;
       // Comment attached to baz.
       // Another line attached to baz.
       // Comment attached to qux.
       //
       // Another line attached to qux.
       optional double qux = 4;
       optional string corge = 5;
       /* Block comment attached
        * to corge.  Leading asterisks
        * will be removed. */
       /* Block comment attached to
        * grault. */
       optional int32 grault = 6;

Specified by:
  `getLeadingCommentsBytes` in interface `DescriptorProtos.SourceCodeInfo.LocationOrBuilder`

#### setLeadingComments

    public DescriptorProtos.SourceCodeInfo.Location.Builder setLeadingComments​(java.lang.String value)

`optional string leading_comments = 3;`

     If this SourceCodeInfo represents a complete declaration, these are any
     comments appearing before and after the declaration which appear to be
     attached to the declaration.
     A series of line comments appearing on consecutive lines, with no other
     tokens appearing on those lines, will be treated as a single comment.
     Only the comment content is provided; comment markers (e.g. //) are
     stripped out.  For block comments, leading whitespace and an asterisk
     will be stripped from the beginning of each line other than the first.
     Newlines are included in the output.
     Examples:
       optional int32 foo = 1;  // Comment attached to foo.
       // Comment attached to bar.
       optional int32 bar = 2;
       optional string baz = 3;
       // Comment attached to baz.
       // Another line attached to baz.
       // Comment attached to qux.
       //
       // Another line attached to qux.
       optional double qux = 4;
       optional string corge = 5;
       /* Block comment attached
        * to corge.  Leading asterisks
        * will be removed. */
       /* Block comment attached to
        * grault. */
       optional int32 grault = 6;

#### clearLeadingComments

    public DescriptorProtos.SourceCodeInfo.Location.Builder clearLeadingComments()

`optional string leading_comments = 3;`

     If this SourceCodeInfo represents a complete declaration, these are any
     comments appearing before and after the declaration which appear to be
     attached to the declaration.
     A series of line comments appearing on consecutive lines, with no other
     tokens appearing on those lines, will be treated as a single comment.
     Only the comment content is provided; comment markers (e.g. //) are
     stripped out.  For block comments, leading whitespace and an asterisk
     will be stripped from the beginning of each line other than the first.
     Newlines are included in the output.
     Examples:
       optional int32 foo = 1;  // Comment attached to foo.
       // Comment attached to bar.
       optional int32 bar = 2;
       optional string baz = 3;
       // Comment attached to baz.
       // Another line attached to baz.
       // Comment attached to qux.
       //
       // Another line attached to qux.
       optional double qux = 4;
       optional string corge = 5;
       /* Block comment attached
        * to corge.  Leading asterisks
        * will be removed. */
       /* Block comment attached to
        * grault. */
       optional int32 grault = 6;

#### setLeadingCommentsBytes

    public DescriptorProtos.SourceCodeInfo.Location.Builder setLeadingCommentsBytes​(ByteString value)

`optional string leading_comments = 3;`

     If this SourceCodeInfo represents a complete declaration, these are any
     comments appearing before and after the declaration which appear to be
     attached to the declaration.
     A series of line comments appearing on consecutive lines, with no other
     tokens appearing on those lines, will be treated as a single comment.
     Only the comment content is provided; comment markers (e.g. //) are
     stripped out.  For block comments, leading whitespace and an asterisk
     will be stripped from the beginning of each line other than the first.
     Newlines are included in the output.
     Examples:
       optional int32 foo = 1;  // Comment attached to foo.
       // Comment attached to bar.
       optional int32 bar = 2;
       optional string baz = 3;
       // Comment attached to baz.
       // Another line attached to baz.
       // Comment attached to qux.
       //
       // Another line attached to qux.
       optional double qux = 4;
       optional string corge = 5;
       /* Block comment attached
        * to corge.  Leading asterisks
        * will be removed. */
       /* Block comment attached to
        * grault. */
       optional int32 grault = 6;

#### hasTrailingComments

    public boolean hasTrailingComments()

`optional string trailing_comments = 4;`

Specified by:
  `hasTrailingComments` in interface `DescriptorProtos.SourceCodeInfo.LocationOrBuilder`

#### getTrailingComments

    public java.lang.String getTrailingComments()

`optional string trailing_comments = 4;`

Specified by:
  `getTrailingComments` in interface `DescriptorProtos.SourceCodeInfo.LocationOrBuilder`

#### getTrailingCommentsBytes

    public ByteString getTrailingCommentsBytes()

`optional string trailing_comments = 4;`

Specified by:
  `getTrailingCommentsBytes` in interface `DescriptorProtos.SourceCodeInfo.LocationOrBuilder`

#### setTrailingComments

    public DescriptorProtos.SourceCodeInfo.Location.Builder setTrailingComments​(java.lang.String value)

`optional string trailing_comments = 4;`

#### clearTrailingComments

    public DescriptorProtos.SourceCodeInfo.Location.Builder clearTrailingComments()

`optional string trailing_comments = 4;`

#### setTrailingCommentsBytes

    public DescriptorProtos.SourceCodeInfo.Location.Builder setTrailingCommentsBytes​(ByteString value)

`optional string trailing_comments = 4;`