CompilationUnitTree (Java SE 15 & JDK 15)
Description: declaration: module: jdk.compiler, package: com.sun.source.tree, interface: CompilationUnitTree
Keywords: com.sun.source.tree.CompilationUnitTree interface

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

# Interface CompilationUnitTree

All Superinterfaces:
  `Tree`

    public interface CompilationUnitTree
    extends Tree

Represents the abstract syntax tree for compilation units (source files) and package declarations (package-info.java).

See Java Language Specification:
  7.3 Compilation Units
  7.4 Package Declarations
Since:
  1.6

- ## Nested Class Summary

  ## Nested classes/interfaces declared in interface com.sun.source.tree.Tree

  `Tree.Kind`

- ## Method Summary

  Modifier and Type | Method | Description
  --- | --- | ---
  `List<? extends ImportTree>` | `getImports()` | Returns the import declarations appearing in this compilation unit.
  `LineMap` | `getLineMap()` | Returns the line map for this compilation unit, if available.
  `PackageTree` | `getPackage()` | Returns the package tree associated with this compilation unit, or `null` if there is no package declaration.
  `List<? extends AnnotationTree>` | `getPackageAnnotations()` | Returns the annotations listed on any package declaration at the head of this compilation unit, or `null` if there is no package declaration.
  `ExpressionTree` | `getPackageName()` | Returns the name contained in any package declaration at the head of this compilation unit, or `null` if there is no package declaration.
  `JavaFileObject` | `getSourceFile()` | Returns the file object containing the source for this compilation unit.
  `List<? extends Tree>` | `getTypeDecls()` | Returns the type declarations appearing in this compilation unit.

  ### Methods declared in interface com.sun.source.tree.Tree

  `accept, getKind`

- ## Method Details

  - ### getPackageAnnotations

    List<? extends AnnotationTree> getPackageAnnotations()
    Returns the annotations listed on any package declaration at the head of this compilation unit, or `null` if there is no package declaration.
    Returns:
      the package annotations

  - ### getPackageName

    ExpressionTree getPackageName()
    Returns the name contained in any package declaration at the head of this compilation unit, or `null` if there is no package declaration.
    Returns:
      the package name

  - ### getPackage

    PackageTree getPackage()
    Returns the package tree associated with this compilation unit, or `null` if there is no package declaration.
    Returns:
      the package tree
    Since:
      9

  - ### getImports

    List<? extends ImportTree> getImports()
    Returns the import declarations appearing in this compilation unit.
    Returns:
      the import declarations

  - ### getTypeDecls

    List<? extends Tree> getTypeDecls()
    Returns the type declarations appearing in this compilation unit. The list may also include empty statements resulting from extraneous semicolons.
    Returns:
      the type declarations

  - ### getSourceFile

    JavaFileObject getSourceFile()
    Returns the file object containing the source for this compilation unit.
    Returns:
      the file object

  - ### getLineMap

    LineMap getLineMap()
    Returns the line map for this compilation unit, if available. Returns `null` if the line map is not available.
    Returns:
      the line map for this compilation unit