Package com.google.protobuf

## Interface DescriptorProtos.SourceCodeInfo.LocationOrBuilder

All Superinterfaces:
  `MessageLiteOrBuilder`, `MessageOrBuilder`

All Known Implementing Classes:
  `DescriptorProtos.SourceCodeInfo.Location`, `DescriptorProtos.SourceCodeInfo.Location.Builder`

Enclosing class:
  DescriptorProtos.SourceCodeInfo

    public static interface DescriptorProtos.SourceCodeInfo.LocationOrBuilder
    extends MessageOrBuilder

### Method Summary

All Methods Instance Methods Abstract Methods
`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;`

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

`isInitialized`

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

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

### Method Detail

#### getPathList

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

#### getPathCount

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

#### getPath

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

#### getSpanList

    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.

#### getSpanCount

    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.

#### getSpan

    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.

#### hasLeadingComments

    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;

#### getLeadingComments

    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;

#### getLeadingCommentsBytes

    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;

#### hasTrailingComments

    boolean hasTrailingComments()

`optional string trailing_comments = 4;`

#### getTrailingComments

    java.lang.String getTrailingComments()

`optional string trailing_comments = 4;`

#### getTrailingCommentsBytes

    ByteString getTrailingCommentsBytes()

`optional string trailing_comments = 4;`