org.eclipse.jdt.core.dom
Class Statement

java.lang.Object
  extended by org.eclipse.jdt.core.dom.ASTNode
      extended by org.eclipse.jdt.core.dom.Statement
Direct Known Subclasses:
AssertStatement, Block, BreakStatement, ConstructorInvocation, ContinueStatement, DoStatement, EmptyStatement, EnhancedForStatement, ExpressionStatement, ForStatement, IfStatement, LabeledStatement, ReturnStatement, SuperConstructorInvocation, SwitchCase, SwitchStatement, SynchronizedStatement, ThrowStatement, TryStatement, TypeDeclarationStatement, VariableDeclarationStatement, WhileStatement

public abstract class Statement
extends ASTNode

Abstract base class of AST nodes that represent statements. There are many kinds of statements.

The grammar combines both Statement and BlockStatement. For JLS2:

 Statement:
    Block
    IfStatement
    ForStatement
    WhileStatement
    DoStatement
    TryStatement
    SwitchStatement
    SynchronizedStatement
    ReturnStatement
    ThrowStatement
    BreakStatement
    ContinueStatement
    EmptyStatement
    ExpressionStatement
    LabeledStatement
    AssertStatement
    VariableDeclarationStatement
    TypeDeclarationStatement
    ConstructorInvocation
    SuperConstructorInvocation
 
For JLS3, an enhanced for node type was added:
 Statement:
    Block
    IfStatement
    ForStatement
    EnhancedForStatement
    WhileStatement
    DoStatement
    TryStatement
    SwitchStatement
    SynchronizedStatement
    ReturnStatement
    ThrowStatement
    BreakStatement
    ContinueStatement
    EmptyStatement
    ExpressionStatement
    LabeledStatement
    AssertStatement
    VariableDeclarationStatement
    TypeDeclarationStatement
    ConstructorInvocation
    SuperConstructorInvocation
 

Since:
2.0

Field Summary
 
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.lang.String getLeadingComment()
          Deprecated. This feature was removed in the 2.1 release because it was only a partial, and inadequate, solution to the issue of associating comments with statements. Furthermore, AST.parseCompilationUnit did not associate leading comments, making this moot. Clients that need to access comments preceding a statement should either consult the compilation unit's comment table or use a scanner to reanalyze the source text immediately preceding the statement's source range.
 void setLeadingComment(java.lang.String comment)
          Deprecated. This feature was removed in the 2.1 release because it was only a partial, and inadequate, solution to the issue of associating comments with statements.
 
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
 

Method Detail

getLeadingComment

public java.lang.String getLeadingComment()
Deprecated. This feature was removed in the 2.1 release because it was only a partial, and inadequate, solution to the issue of associating comments with statements. Furthermore, AST.parseCompilationUnit did not associate leading comments, making this moot. Clients that need to access comments preceding a statement should either consult the compilation unit's comment table or use a scanner to reanalyze the source text immediately preceding the statement's source range.

Returns the leading comment string, including the starting and ending comment delimiters, and any embedded line breaks.

A leading comment is a comment that appears before the statement. It may be either a traditional comment or an end-of-line comment. Traditional comments must begin with "/*, may contain line breaks, and must end with "*/. End-of-line comments must begin with "//", must end with a line delimiter (as per JLS 3.7), and must not contain line breaks.

Returns:
the comment string, or null if none

setLeadingComment

public void setLeadingComment(java.lang.String comment)
Deprecated. This feature was removed in the 2.1 release because it was only a partial, and inadequate, solution to the issue of associating comments with statements.

Sets or clears the leading comment string. The comment string must include the starting and ending comment delimiters, and any embedded linebreaks.

A leading comment is a comment that appears before the statement. It may be either a traditional comment or an end-of-line comment. Traditional comments must begin with "/*, may contain line breaks, and must end with "*/. End-of-line comments must begin with "//" (as per JLS 3.7), and must not contain line breaks.

Examples:

 setLeadingComment("/* traditional comment */");  // correct
 setLeadingComment("missing comment delimiters");  // wrong
 setLeadingComment("/* unterminated traditional comment ");  // wrong
 setLeadingComment("/* broken\n traditional comment */");  // correct
 setLeadingComment("// end-of-line comment\n");  // correct
 setLeadingComment("// end-of-line comment without line terminator");  // correct
 setLeadingComment("// broken\n end-of-line comment\n");  // wrong
 

Parameters:
comment - the comment string, or null if none
Throws:
java.lang.IllegalArgumentException - if the comment string is invalid