japa.parser.ast

## Class CompilationUnit

- java.lang.Object
- - japa.parser.ast.Node
  - - japa.parser.ast.CompilationUnit

    public final class CompilationUnit
    extends Node

This class represents the entire compilation unit. Each java file denotes a compilation unit.

The CompilationUnit is constructed following the syntax:
`

CompilationUnit | ::= | ( `PackageDeclaration` )? ( `ImportDeclaration` )* ( `TypeDeclaration` )*

`

Author:
  Julio Vilmar Gesser

### Field Summary

### Fields inherited from class japa.parser.ast.Node

`ABSOLUTE_BEGIN_LINE, ABSOLUTE_END_LINE`

### Constructor Summary

Constructors
Constructor and Description
`CompilationUnit()`
`CompilationUnit(int beginLine, int beginColumn, int endLine, int endColumn, PackageDeclaration pakage, List<ImportDeclaration> imports, List<TypeDeclaration> types)`
`CompilationUnit(PackageDeclaration pakage, List<ImportDeclaration> imports, List<TypeDeclaration> types)`

### Method Summary

All Methods Instance Methods Concrete Methods
`<R,A> R` `accept(GenericVisitor<R,A> v, A arg)` Accept method for visitor support.
`<A> void` `accept(VoidVisitor<A> v, A arg)` Accept method for visitor support.
`List<Comment>` `getComments()` Return a list containing all comments declared in this compilation unit.
`List<ImportDeclaration>` `getImports()` Retrieves the list of imports declared in this compilation unit or `null` if there is no import.
`PackageDeclaration` `getPackage()` Retrieves the package declaration of this compilation unit. If this compilation unit has no package declaration (default package), `null` is returned.
`List<TypeDeclaration>` `getTypes()` Return the list of types declared in this compilation unit. If there is no types declared, `null` is returned.
`void` `setComments(List<Comment> comments)` Sets the list of comments of this compilation unit.
`void` `setImports(List<ImportDeclaration> imports)` Sets the list of imports of this compilation unit.
`void` `setPackage(PackageDeclaration pakage)` Sets or clear the package declarations of this compilation unit.
`void` `setTypes(List<TypeDeclaration> types)` Sets the list of types declared in this compilation unit.

### Methods inherited from class japa.parser.ast.Node

`addOrphanComment, contains, equals, getAllContainedComments, getBeginColumn, getBeginLine, getChildrenNodes, getComment, getData, getEndColumn, getEndLine, getOrphanComments, getParentNode, hashCode, isPositionedAfter, isPositionedBefore, setAsParentNodeOf, setAsParentNodeOf, setBeginColumn, setBeginLine, setComment, setData, setEndColumn, setEndLine, setParentNode, toString`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### CompilationUnit

    public CompilationUnit()

#### CompilationUnit

    public CompilationUnit(PackageDeclaration pakage,
                           List<ImportDeclaration> imports,
                           List<TypeDeclaration> types)

#### CompilationUnit

    public CompilationUnit(int beginLine,
                           int beginColumn,
                           int endLine,
                           int endColumn,
                           PackageDeclaration pakage,
                           List<ImportDeclaration> imports,
                           List<TypeDeclaration> types)

### Method Detail

#### accept

    public <R,A> R accept(GenericVisitor<R,A> v,
                          A arg)

Description copied from class: `Node`
Accept method for visitor support.

Specified by:
  `accept` in class `Node`
Type Parameters:
  `R` - the type the return value of the visitor
  `A` - the type the argument passed to the visitor
Parameters:
  `v` - the visitor implementation
  `arg` - the argument passed to the visitor
Returns:
  the result of the visit

#### accept

    public <A> void accept(VoidVisitor<A> v,
                           A arg)

Description copied from class: `Node`
Accept method for visitor support.

Specified by:
  `accept` in class `Node`
Type Parameters:
  `A` - the type the argument passed for the visitor
Parameters:
  `v` - the visitor implementation
  `arg` - any value relevant for the visitor

#### getComments

    public List<Comment> getComments()

Return a list containing all comments declared in this compilation unit. Including javadocs, line comments and block comments of all types, inner-classes and other members.
If there is no comment, `null` is returned.

Returns:
  list with all comments of this compilation unit or `null`
See Also:
  `JavadocComment`, `LineComment`, `BlockComment`

#### getImports

    public List<ImportDeclaration> getImports()

Retrieves the list of imports declared in this compilation unit or `null` if there is no import.

Returns:
  the list of imports or `null` if there is no import

#### getPackage

    public PackageDeclaration getPackage()

Retrieves the package declaration of this compilation unit.
If this compilation unit has no package declaration (default package), `null` is returned.

Returns:
  the package declaration or `null`

#### getTypes

    public List<TypeDeclaration> getTypes()

Return the list of types declared in this compilation unit.
If there is no types declared, `null` is returned.

Returns:
  the list of types or `null` null if there is no type
See Also:
  `AnnotationDeclaration`, `ClassOrInterfaceDeclaration`, `EmptyTypeDeclaration`, `EnumDeclaration`

#### setComments

    public void setComments(List<Comment> comments)

Sets the list of comments of this compilation unit.

Parameters:
  `comments` - the list of comments

#### setImports

    public void setImports(List<ImportDeclaration> imports)

Sets the list of imports of this compilation unit. The list is initially `null`.

Parameters:
  `imports` - the list of imports

#### setPackage

    public void setPackage(PackageDeclaration pakage)

Sets or clear the package declarations of this compilation unit.

Parameters:
  `pakage` - the pakage declaration to set or `null` to default package

#### setTypes

    public void setTypes(List<TypeDeclaration> types)

Sets the list of types declared in this compilation unit.

Parameters:
  `types` - the lis of types