+++ /dev/null
-/*******************************************************************************
- * Copyright (c) 2004, 2006 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * IBM Corporation - initial API and implementation
- *******************************************************************************/
-package net.sourceforge.phpdt.core.dom;
-
-/**
- * Abstract base class for all AST nodes that represent comments.
- * There are exactly three kinds of comment:
- * line comments ({@link LineComment}),
- * block comments ({@link BlockComment}), and
- * doc comments ({@link Javadoc}).
- * <p>
- * <pre>
- * Comment:
- * LineComment
- * BlockComment
- * Javadoc
- * </pre>
- * </p>
- *
- * @since 3.0
- */
-public abstract class Comment extends ASTNode {
-
- /**
- * Alternate root node, or <code>null</code> if none.
- * Initially <code>null</code>.
- */
- private ASTNode alternateRoot = null;
-
- /**
- * Creates a new AST node for a comment owned by the given AST.
- * <p>
- * N.B. This constructor is package-private.
- * </p>
- *
- * @param ast the AST that is to own this node
- */
- Comment(AST ast) {
- super(ast);
- }
-
- /**
- * Returns whether this comment is a block comment
- * (<code>BlockComment</code>).
- *
- * @return <code>true</code> if this is a block comment, and
- * <code>false</code> otherwise
- */
- public final boolean isBlockComment() {
- return (this instanceof BlockComment);
- }
-
- /**
- * Returns whether this comment is a line comment
- * (<code>LineComment</code>).
- *
- * @return <code>true</code> if this is a line comment, and
- * <code>false</code> otherwise
- */
- public final boolean isLineComment() {
- return (this instanceof LineComment);
- }
-
- /**
- * Returns whether this comment is a doc comment
- * (<code>Javadoc</code>).
- *
- * @return <code>true</code> if this is a doc comment, and
- * <code>false</code> otherwise
- */
- public final boolean isDocComment() {
- return (this instanceof Javadoc);
- }
-
- /**
- * Returns the root AST node that this comment occurs
- * within, or <code>null</code> if none (or not recorded).
- * <p>
- * Typically, the comment nodes created while parsing a compilation
- * unit are not considered descendents of the normal AST
- * root, namely an {@link 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.
- * </p>
- *
- * @return the alternate root node, or <code>null</code>
- * if none
- * @see #setAlternateRoot(ASTNode)
- */
- public final ASTNode getAlternateRoot() {
- return this.alternateRoot;
- }
-
- /**
- * Returns the root AST node that this comment occurs
- * within, or <code>null</code> if none (or not recorded).
- * <p>
- * </p>
- *
- * @param root the alternate root node, or <code>null</code>
- * if none
- * @see #getAlternateRoot()
- */
- public final void setAlternateRoot(ASTNode root) {
- // alternate root is *not* considered a structural property
- // but we protect them nevertheless
- checkModifiable();
- this.alternateRoot = root;
- }
-
- /* (omit javadoc for this method)
- * Method declared on ASTNode.
- */
- int memSize() {
- return BASE_NODE_SIZE + 1 * 4;
- }
-}