org.eclipse.jdt.core.dom
Class PackageDeclaration

java.lang.Object
  extended by org.eclipse.jdt.core.dom.ASTNode
      extended by org.eclipse.jdt.core.dom.PackageDeclaration

public class PackageDeclaration
extends ASTNode

Package declaration AST node type. For JLS2:

 PackageDeclaration:
    package Name ;
 
For JLS3, annotations and doc comment were added:
 PackageDeclaration:
    [ Javadoc ] { Annotation } package Name ;
 
Note that the standard AST parser only recognizes a Javadoc comment immediately preceding the package declaration when it occurs in the special package-info.java compilation unit (JLS3 7.4.1.1). The Javadoc comment in that file contains the package description.

Since:
2.0

Field Summary
static ChildListPropertyDescriptor ANNOTATIONS_PROPERTY
          The "annotations" structural property of this node type (added in JLS3 API).
static ChildPropertyDescriptor JAVADOC_PROPERTY
          The "javadoc" structural property of this node type.
static ChildPropertyDescriptor NAME_PROPERTY
          The "name" structural property of this node type.
 
Fields inherited from class org.eclipse.jdt.core.dom.ASTNode
ANNOTATION_TYPE_DECLARATION, ANNOTATION_TYPE_MEMBER_DECLARATION, ANONYMOUS_CLASS_DECLARATION, ARRAY_ACCESS, ARRAY_CREATION, ARRAY_INITIALIZER, ARRAY_TYPE, ASSERT_STATEMENT, ASSIGNMENT, BLOCK, BLOCK_COMMENT, BOOLEAN_LITERAL, BREAK_STATEMENT, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, DO_STATEMENT, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, JAVADOC, LABELED_STATEMENT, LINE_COMMENT, MALFORMED, MARKER_ANNOTATION, MEMBER_REF, MEMBER_VALUE_PAIR, METHOD_DECLARATION, METHOD_INVOCATION, METHOD_REF, METHOD_REF_PARAMETER, MODIFIER, NORMAL_ANNOTATION, NULL_LITERAL, NUMBER_LITERAL, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_MEMBER_ANNOTATION, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SWITCH_CASE, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_PARAMETER, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE
 
Method Summary
 java.util.List annotations()
          Returns the live ordered list of annotations of this package declaration (added in JLS3 API).
 Javadoc getJavadoc()
          Returns the doc comment node.
 Name getName()
          Returns the package name of this package declaration.
static java.util.List propertyDescriptors(int apiLevel)
          Returns a list of structural property descriptors for this node type.
 IPackageBinding resolveBinding()
          Resolves and returns the binding for the package declared in this package declaration.
 void setJavadoc(Javadoc docComment)
          Sets or clears the doc comment node.
 void setName(Name name)
          Sets the package name of this package declaration to the given name.
 
Methods inherited from class org.eclipse.jdt.core.dom.ASTNode
accept, copySubtree, copySubtrees, delete, equals, getAST, getFlags, getLength, getLocationInParent, getNodeType, getParent, getProperty, getRoot, getStartPosition, getStructuralProperty, hashCode, nodeClassForType, properties, setFlags, setProperty, setSourceRange, setStructuralProperty, structuralPropertiesForType, subtreeBytes, subtreeMatch, toString
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

JAVADOC_PROPERTY

public static final ChildPropertyDescriptor JAVADOC_PROPERTY
The "javadoc" structural property of this node type.

Since:
3.0

ANNOTATIONS_PROPERTY

public static final ChildListPropertyDescriptor ANNOTATIONS_PROPERTY
The "annotations" structural property of this node type (added in JLS3 API).

Since:
3.1

NAME_PROPERTY

public static final ChildPropertyDescriptor NAME_PROPERTY
The "name" structural property of this node type.

Since:
3.0
Method Detail

propertyDescriptors

public static java.util.List propertyDescriptors(int apiLevel)
Returns a list of structural property descriptors for this node type. Clients must not modify the result.

Parameters:
apiLevel - the API level; one of the AST.JLS* constants
Returns:
a list of property descriptors (element type: StructuralPropertyDescriptor)
Since:
3.0

annotations

public java.util.List annotations()
Returns the live ordered list of annotations of this package declaration (added in JLS3 API).

Returns:
the live list of annotations (element type: Annotation)
Throws:
java.lang.UnsupportedOperationException - if this operation is used in a JLS2 AST
Since:
3.1

getJavadoc

public Javadoc getJavadoc()
Returns the doc comment node.

Returns:
the doc comment node, or null if none
Throws:
java.lang.UnsupportedOperationException - if this operation is used in a JLS2 AST
Since:
3.0

setJavadoc

public void setJavadoc(Javadoc docComment)
Sets or clears the doc comment node.

Parameters:
docComment - the doc comment node, or null if none
Throws:
java.lang.IllegalArgumentException - if the doc comment string is invalid
java.lang.UnsupportedOperationException - if this operation is used in a JLS2 AST
Since:
3.0

getName

public Name getName()
Returns the package name of this package declaration.

Returns:
the package name node

setName

public void setName(Name name)
Sets the package name of this package declaration to the given name.

Parameters:
name - the new package name
Throws:
java.lang.IllegalArgumentException - if`:
  • the node belongs to a different AST
  • the node already has a parent

resolveBinding

public IPackageBinding resolveBinding()
Resolves and returns the binding for the package declared in this package declaration.

Note that bindings are generally unavailable unless requested when the AST is being built.

Returns:
the binding, or null if the binding cannot be resolved