CompilationUnitTree (Java SE 12 & JDK 12 )
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).
  Since:
    1.6
  See The Java™ Language Specification:
    sections 7.3, and 7.4

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

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