All Downloads are FREE. Search and download functionalities are using the official Maven repository.

stubparser.src.org.checkerframework.stubparser.ast.CompilationUnit Maven / Gradle / Ivy

Go to download

The Checker Framework enhances Java’s type system to make it more powerful and useful. This lets software developers detect and prevent errors in their Java programs. The Checker Framework includes compiler plug-ins ("checkers") that find bugs or verify their absence. It also permits you to write your own compiler plug-ins.

There is a newer version: 3.42.0
Show newest version
/*
 * Copyright (C) 2007 Júlio Vilmar Gesser.
 *
 * This file is part of Java 1.5 parser and Abstract Syntax Tree.
 *
 * Java 1.5 parser and Abstract Syntax Tree is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Java 1.5 parser and Abstract Syntax Tree is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with Java 1.5 parser and Abstract Syntax Tree.  If not, see .
 */
/*
 * Created on 05/10/2006
 */
package org.checkerframework.stubparser.ast;

import java.util.List;

import org.checkerframework.stubparser.ast.body.AnnotationDeclaration;
import org.checkerframework.stubparser.ast.body.ClassOrInterfaceDeclaration;
import org.checkerframework.stubparser.ast.body.EmptyTypeDeclaration;
import org.checkerframework.stubparser.ast.body.EnumDeclaration;
import org.checkerframework.stubparser.ast.body.JavadocComment;
import org.checkerframework.stubparser.ast.body.TypeDeclaration;
import org.checkerframework.stubparser.ast.visitor.GenericVisitor;
import org.checkerframework.stubparser.ast.visitor.VoidVisitor;

/**
 * 

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

* The CompilationUnit is constructed following the syntax:
* * * * * * *
CompilationUnit::= * ( {@link PackageDeclaration} )?
* ( {@link ImportDeclaration} )*
* ( {@link TypeDeclaration} )*
*
* * @author Julio Vilmar Gesser */ public final class CompilationUnit extends Node { private PackageDeclaration pakage; private List imports; private List types; private List comments; public CompilationUnit() { } public CompilationUnit(PackageDeclaration pakage, List imports, List types, List comments) { this.pakage = pakage; this.imports = imports; this.types = types; this.comments = comments; } public CompilationUnit(int beginLine, int beginColumn, int endLine, int endColumn, PackageDeclaration pakage, List imports, List types, List comments) { super(beginLine, beginColumn, endLine, endColumn); this.pakage = pakage; this.imports = imports; this.types = types; this.comments = comments; } @Override public R accept(GenericVisitor v, A arg) { return v.visit(this, arg); } @Override public void accept(VoidVisitor v, A arg) { v.visit(this, arg); } /** * 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. * * @return list with all comments of this compilation unit or * null * @see JavadocComment * @see LineComment * @see BlockComment */ public List getComments() { return comments; } /** * Retrieves the list of imports declared in this compilation unit or * null if there is no import. * * @return the list of imports or null if there is no import */ public List getImports() { return imports; } /** * Retrieves the package declaration of this compilation unit.
* If this compilation unit has no package declaration (default package), * null is returned. * * @return the package declaration or null */ public PackageDeclaration getPackage() { return pakage; } /** * Return the list of types declared in this compilation unit.
* If there is no types declared, null is returned. * * @return the list of types or null null if there is no type * @see AnnotationDeclaration * @see ClassOrInterfaceDeclaration * @see EmptyTypeDeclaration * @see EnumDeclaration */ public List getTypes() { return types; } /** * Sets the list of comments of this compilation unit. * * @param comments * the list of comments */ public void setComments(List comments) { this.comments = comments; } /** * Sets the list of imports of this compilation unit. The list is initially * null. * * @param imports * the list of imports */ public void setImports(List imports) { this.imports = imports; } /** * Sets or clear the package declarations of this compilation unit. * * @param pakage * the pakage declaration to set or null to default * package */ public void setPackage(PackageDeclaration pakage) { this.pakage = pakage; } /** * Sets the list of types declared in this compilation unit. * * @param types * the lis of types */ public void setTypes(List types) { this.types = types; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy