Package org.eclipse.jdt.core.dom

## Class Statement

- java.lang.Object
- - org.eclipse.jdt.core.dom.ASTNode
  - - 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`, `YieldStatement`

    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.

     Statement:
        AssertStatement,
        Block,
        BreakStatement,
        ConstructorInvocation,
        ContinueStatement,
        DoStatement,
        EmptyStatement,
        EnhancedForStatement
        ExpressionStatement,
        ForStatement,
        IfStatement,
        LabeledStatement,
        ReturnStatement,
        SuperConstructorInvocation,
        SwitchCase,
        SwitchStatement,
        SynchronizedStatement,
        ThrowStatement,
        TryStatement,
        TypeDeclarationStatement,
        VariableDeclarationStatement,
        WhileStatement

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, CASE_DEFAULT_EXPRESSION, CAST_EXPRESSION, CATCH_CLAUSE, CHARACTER_LITERAL, CLASS_INSTANCE_CREATION, COMPILATION_UNIT, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, CREATION_REFERENCE, DIMENSION, DO_STATEMENT, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, ENUM_CONSTANT_DECLARATION, ENUM_DECLARATION, EXPORTS_DIRECTIVE, EXPRESSION_METHOD_REFERENCE, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_STATEMENT, GUARDED_PATTERN, IF_STATEMENT, IMPORT_DECLARATION, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, INTERSECTION_TYPE, JAVADOC, LABELED_STATEMENT, LAMBDA_EXPRESSION, LINE_COMMENT, MALFORMED, MARKER_ANNOTATION, MEMBER_REF, MEMBER_VALUE_PAIR, METHOD_DECLARATION, METHOD_INVOCATION, METHOD_REF, METHOD_REF_PARAMETER, MODIFIER, MODULE_DECLARATION, MODULE_MODIFIER, MODULE_QUALIFIED_NAME, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NULL_PATTERN, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, PATTERN_INSTANCEOF_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, RECORD_DECLARATION, RECOVERED, REQUIRES_DIRECTIVE, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_MEMBER_ANNOTATION, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SUPER_METHOD_REFERENCE, SWITCH_CASE, SWITCH_EXPRESSION, SWITCH_STATEMENT, SYNCHRONIZED_STATEMENT, TAG_ELEMENT, TEXT_BLOCK, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, TYPE_PATTERN, UNION_TYPE, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, YIELD_STATEMENT`

### Method Summary

All Methods Instance Methods Concrete Methods Deprecated Methods
`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.
`void` `setLeadingComment​(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

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

### Method Detail

#### getLeadingComment

    public 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​(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:
  `IllegalArgumentException` - if the comment string is invalid