SourcePositions (Java SE 26 & JDK 26)
Description: declaration: module: jdk.compiler, package: com.sun.source.util, interface: SourcePositions
Keywords: com.sun.source.util.SourcePositions interface

# 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, returns `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:

    `getStartPosition(file, tree) <= getStartPosition(file, subtree)` or
    `getStartPosition(file, tree) == NOPOS` or
    `getStartPosition(file, subtree) == 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, returns `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:

    `getEndPosition(file, tree) >= getEndPosition(file, subtree)` or
    `getEndPosition(file, tree) == NOPOS` or
    `getEndPosition(file, subtree) == NOPOS`

    In addition, the following must hold:

    `getStartPosition(file, tree) <= getEndPosition(file, tree)` or
    `getStartPosition(file, tree) == NOPOS` or
    `getEndPosition(file, tree) == NOPOS`

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