SourcePositions (Java SE 9 & JDK 9 )
Keywords: com.sun.source.util.SourcePositions interface

Module jdk.compiler
Package com.sun.source.util

## Interface SourcePositions

- All Known Subinterfaces:
    `DocSourcePositions`

      public interface SourcePositions

  Provides methods to obtain the position of a Tree within a CompilationUnit. A position is defined as a simple character offset from the start of a CompilationUnit where the first character is at offset 0.
  Since:
    1.6

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `long` | `getEndPosition​(CompilationUnitTree file, Tree tree)` | Returns the ending position of tree within file.
    `long` | `getStartPosition​(CompilationUnitTree file, Tree tree)` | Returns the starting position of tree within file.

- - ### Method Detail

    - #### getStartPosition

          long getStartPosition​(CompilationUnitTree file,
                                Tree tree)

      Returns the starting position of tree within file. If tree is not found within file, or if the starting position is not available, return `Diagnostic.NOPOS`. The returned position must be at the start of the yield of this tree, that is for any sub-tree of this tree, the following must hold:

      `tree.getStartPosition() <= subtree.getStartPosition()` or
      `tree.getStartPosition() == NOPOS` or
      `subtree.getStartPosition() == NOPOS`

      Parameters:
        `file` - CompilationUnit in which to find tree.
        `tree` - tree for which a position is sought.
      Returns:
        the start position of tree.

    - #### getEndPosition

          long getEndPosition​(CompilationUnitTree file,
                              Tree tree)

      Returns the ending position of tree within file. If tree is not found within file, or if the ending position is not available, return `Diagnostic.NOPOS`. The returned position must be at the end of the yield of this tree, that is for any sub-tree of this tree, the following must hold:

      `tree.getEndPosition() >= subtree.getEndPosition()` or
      `tree.getEndPosition() == NOPOS` or
      `subtree.getEndPosition() == NOPOS`

      In addition, the following must hold:

      `tree.getStartPosition() <= tree.getEndPosition()` or
      `tree.getStartPosition() == NOPOS` or
      `tree.getEndPosition() == NOPOS`

      Parameters:
        `file` - CompilationUnit in which to find tree.
        `tree` - tree for which a position is sought.
      Returns:
        the end position of tree.