SourcePositions (Java SE 13 & JDK 13 )
Description: declaration: module: jdk.compiler, package: com.sun.source.util, interface: SourcePositions
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

  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 Details

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