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 inherited from interface com.sun.source.tree.Tree

`Tree.Kind`

### Method Summary

All Methods Instance Methods Abstract Methods
`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 inherited from 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