# Class Comment

java.lang.Object
org.eclipse.jdt.core.dom.ASTNode
org.eclipse.jdt.core.dom.Comment

Direct Known Subclasses:
  `BlockComment, Javadoc, LineComment`

public abstract class Comment extends ASTNode
Abstract base class for all AST nodes that represent comments. There are exactly three kinds of comment: line comments (`LineComment`), block comments (`BlockComment`), and doc comments (`Javadoc`).

    Comment:
        LineComment
        BlockComment
        Javadoc

Since:
  3.0

## Field Summary

### Fields inherited from class 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, EitherOr_MultiPattern, 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, JAVADOC_REGION, JAVADOC_TEXT_ELEMENT, 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, RECORD_PATTERN, 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, TAG_PROPERTY, 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, UNNAMED_CLASS, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, YIELD_STATEMENT`

## Method Summary

Modifier and Type
Method
Description
`final ASTNode`
`getAlternateRoot()`
Returns the root AST node that this comment occurs within, or `null` if none (or not recorded).
`final boolean`
`isBlockComment()`
Returns whether this comment is a block comment (`BlockComment`).
`final boolean`
`isDocComment()`
Returns whether this comment is a doc comment (`Javadoc`).
`final boolean`
`isLineComment()`
Returns whether this comment is a line comment (`LineComment`).
`final void`
`setAlternateRoot(ASTNode root)`
Returns the root AST node that this comment occurs within, or `null` if none (or not recorded).

### Methods inherited from class 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 Object

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

## Method Details

### isBlockComment

public final boolean isBlockComment()
Returns whether this comment is a block comment (`BlockComment`).

Returns:
  `true` if this is a block comment, and `false` otherwise

### isLineComment

public final boolean isLineComment()
Returns whether this comment is a line comment (`LineComment`).

Returns:
  `true` if this is a line comment, and `false` otherwise

### isDocComment

public final boolean isDocComment()
Returns whether this comment is a doc comment (`Javadoc`).

Returns:
  `true` if this is a doc comment, and `false` otherwise

### getAlternateRoot

public final ASTNode getAlternateRoot()
Returns the root AST node that this comment occurs within, or `null` if none (or not recorded).

Typically, the comment nodes created while parsing a compilation unit are not considered descendents of the normal AST root, namely an `CompilationUnit`. Instead, these comment nodes exist outside the normal AST and each is a root in its own right. This optional property provides a well-known way to navigate from the comment to the compilation unit in such cases. Note that the alternate root property is not one of the comment node's children. It is simply a reference to a node.

Returns:
  the alternate root node, or `null` if none
See Also:
  - `setAlternateRoot(ASTNode)`

### setAlternateRoot

public final void setAlternateRoot(ASTNode root)
Returns the root AST node that this comment occurs within, or `null` if none (or not recorded).

Parameters:
  `root` - the alternate root node, or `null` if none
See Also:
  - `getAlternateRoot()`