org.eclipse.wst.jsdt.core.dom
Class TagElement

java.lang.Object
  extended by org.eclipse.wst.jsdt.core.dom.ASTNode
      extended by org.eclipse.wst.jsdt.core.dom.TagElement

public final class TagElement
extends ASTNode

AST node for a tag within a doc comment. Tag elements nested within another tag element are called inline doc tags.

 TagElement:
     [ @ Identifier ] { DocElement }
 DocElement:
     TextElement
     Name
     FunctionRef
     MemberRef
     { TagElement }
 

See Also:
Provisional API: This class/interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.

Field Summary
static ChildListPropertyDescriptor FRAGMENTS_PROPERTY
          The "fragments" structural property of this node type.
static java.lang.String TAG_AUTHOR
          Standard doc tag name (value "@author").
static java.lang.String TAG_CODE
          Standard inline doc tag name (value "@code").
static java.lang.String TAG_DEPRECATED
          Standard doc tag name (value "@deprecated").
static java.lang.String TAG_DOCROOT
          Standard inline doc tag name (value "@docRoot").
static java.lang.String TAG_EXCEPTION
          Standard doc tag name (value "@exception").
static java.lang.String TAG_INHERITDOC
          Standard inline doc tag name (value "@inheritDoc").
static java.lang.String TAG_LINK
          Standard inline doc tag name (value "@link").
static java.lang.String TAG_LINKPLAIN
          Standard inline doc tag name (value "@linkplain").
static java.lang.String TAG_LITERAL
          Standard inline doc tag name (value "@literal").
static SimplePropertyDescriptor TAG_NAME_PROPERTY
          The "tagName" structural property of this node type.
static java.lang.String TAG_PARAM
          Standard doc tag name (value "@param").
static java.lang.String TAG_RETURN
          Standard doc tag name (value "@return").
static java.lang.String TAG_SEE
          Standard doc tag name (value "@see").
static java.lang.String TAG_SERIAL
          Standard doc tag name (value "@serial").
static java.lang.String TAG_SERIALDATA
          Standard doc tag name (value "@serialData").
static java.lang.String TAG_SERIALFIELD
          Standard doc tag name (value "@serialField").
static java.lang.String TAG_SINCE
          Standard doc tag name (value " ").
static java.lang.String TAG_THROWS
          Standard doc tag name (value "@throws").
static java.lang.String TAG_VALUE
          Standard inline doc tag name (value "@value").
static java.lang.String TAG_VERSION
          Standard doc tag name (value "@version").
 
Fields inherited from class org.eclipse.wst.jsdt.core.dom.ASTNode
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, CONDITIONAL_EXPRESSION, CONSTRUCTOR_INVOCATION, CONTINUE_STATEMENT, DO_STATEMENT, EMPTY_EXPRESSION, EMPTY_STATEMENT, ENHANCED_FOR_STATEMENT, EXPRESSION_STATEMENT, FIELD_ACCESS, FIELD_DECLARATION, FOR_IN_STATEMENT, FOR_STATEMENT, FUNCTION_DECLARATION, FUNCTION_EXPRESSION, FUNCTION_INVOCATION, FUNCTION_REF, FUNCTION_REF_PARAMETER, IF_STATEMENT, IMPORT_DECLARATION, INFERRED_TYPE, INFIX_EXPRESSION, INITIALIZER, INSTANCEOF_EXPRESSION, JAVASCRIPT_UNIT, JSDOC, LABELED_STATEMENT, LINE_COMMENT, LIST_EXPRESSION, MALFORMED, MEMBER_REF, MODIFIER, NULL_LITERAL, NUMBER_LITERAL, OBJECT_LITERAL, OBJECT_LITERAL_FIELD, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, QUALIFIED_NAME, QUALIFIED_TYPE, RECOVERED, REGULAR_EXPRESSION_LITERAL, RETURN_STATEMENT, SIMPLE_NAME, SIMPLE_TYPE, SINGLE_VARIABLE_DECLARATION, STRING_LITERAL, SUPER_CONSTRUCTOR_INVOCATION, SUPER_FIELD_ACCESS, SUPER_METHOD_INVOCATION, SWITCH_CASE, SWITCH_STATEMENT, TAG_ELEMENT, TEXT_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_PARAMETER, UNDEFINED_LITERAL, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE, WITH_STATEMENT
 
Method Summary
 java.util.List fragments()
          Returns the live list of fragments in this tag element.
 java.lang.String getTagName()
          Returns this node's tag name, or null if none.
 boolean isNested()
          Returns whether this tag element is nested within another tag element.
static java.util.List propertyDescriptors(int apiLevel)
          Returns a list of structural property descriptors for this node type.
 void setTagName(java.lang.String tagName)
          Sets the tag name of this node to the given value.
 
Methods inherited from class org.eclipse.wst.jsdt.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

TAG_NAME_PROPERTY

public static final SimplePropertyDescriptor TAG_NAME_PROPERTY
The "tagName" structural property of this node type.


FRAGMENTS_PROPERTY

public static final ChildListPropertyDescriptor FRAGMENTS_PROPERTY
The "fragments" structural property of this node type.


TAG_AUTHOR

public static final java.lang.String TAG_AUTHOR
Standard doc tag name (value "@author").

See Also:
Constant Field Values

TAG_CODE

public static final java.lang.String TAG_CODE
Standard inline doc tag name (value "@code").

Note that this tag first appeared in J2SE 5.

See Also:
Constant Field Values

TAG_DEPRECATED

public static final java.lang.String TAG_DEPRECATED
Standard doc tag name (value "@deprecated").

See Also:
Constant Field Values

TAG_DOCROOT

public static final java.lang.String TAG_DOCROOT
Standard inline doc tag name (value "@docRoot").

See Also:
Constant Field Values

TAG_EXCEPTION

public static final java.lang.String TAG_EXCEPTION
Standard doc tag name (value "@exception").

See Also:
Constant Field Values

TAG_INHERITDOC

public static final java.lang.String TAG_INHERITDOC
Standard inline doc tag name (value "@inheritDoc").

See Also:
Constant Field Values

TAG_LINK

public static final java.lang.String TAG_LINK
Standard inline doc tag name (value "@link").

See Also:
Constant Field Values

TAG_LINKPLAIN

public static final java.lang.String TAG_LINKPLAIN
Standard inline doc tag name (value "@linkplain").

See Also:
Constant Field Values

TAG_LITERAL

public static final java.lang.String TAG_LITERAL
Standard inline doc tag name (value "@literal").

Note that this tag first appeared in J2SE 5.

See Also:
Constant Field Values

TAG_PARAM

public static final java.lang.String TAG_PARAM
Standard doc tag name (value "@param").

See Also:
Constant Field Values

TAG_RETURN

public static final java.lang.String TAG_RETURN
Standard doc tag name (value "@return").

See Also:
Constant Field Values

TAG_SEE

public static final java.lang.String TAG_SEE
Standard doc tag name (value "@see").

See Also:
Constant Field Values

TAG_SERIAL

public static final java.lang.String TAG_SERIAL
Standard doc tag name (value "@serial").

See Also:
Constant Field Values

TAG_SERIALDATA

public static final java.lang.String TAG_SERIALDATA
Standard doc tag name (value "@serialData").

See Also:
Constant Field Values

TAG_SERIALFIELD

public static final java.lang.String TAG_SERIALFIELD
Standard doc tag name (value "@serialField").

See Also:
Constant Field Values

TAG_SINCE

public static final java.lang.String TAG_SINCE
Standard doc tag name (value " ").

See Also:
Constant Field Values

TAG_THROWS

public static final java.lang.String TAG_THROWS
Standard doc tag name (value "@throws").

See Also:
Constant Field Values

TAG_VALUE

public static final java.lang.String TAG_VALUE
Standard inline doc tag name (value "@value").

See Also:
Constant Field Values

TAG_VERSION

public static final java.lang.String TAG_VERSION
Standard doc tag name (value "@version").

See Also:
Constant Field Values
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)

getTagName

public java.lang.String getTagName()
Returns this node's tag name, or null if none. For top level doc tags such as parameter tags, the tag name includes the "@" character ("@param"). For inline doc tags such as link tags, the tag name includes the "@" character ("@link"). The tag name may also be null; this is used to represent the material at the start of a doc comment preceding the first explicit tag.

Returns:
the tag name, or null if none

setTagName

public void setTagName(java.lang.String tagName)
Sets the tag name of this node to the given value. For top level doc tags such as parameter tags, the tag name includes the "@" character ("@param"). For inline doc tags such as link tags, the tag name includes the "@" character ("@link"). The tag name may also be null; this is used to represent the material at the start of a doc comment preceding the first explicit tag.

Parameters:
tagName - the tag name, or null if none

fragments

public java.util.List fragments()
Returns the live list of fragments in this tag element.

The fragments cover everything following the tag name (or everything if there is no tag name), and generally omit embedded line breaks (and leading whitespace on new lines, including any leading "*"). TagElement nodes are used to represent tag elements (e.g., "@link") nested within this tag element.

Here are some typical examples:

The use of Name, FunctionRef, and MemberRef nodes within tag elements allows these fragments to be queried for binding information.

Adding and removing nodes from this list affects this node dynamically. The nodes in this list may be of various types, including TextElement, TagElement, Name, MemberRef, and FunctionRef. Clients should assume that the list of types may grow in the future, and write their code to deal with unexpected nodes types. However, attempts to add a non-proscribed type of node will trigger an exception.

Returns:
the live list of doc elements in this tag element (element type: ASTNode)

isNested

public boolean isNested()
Returns whether this tag element is nested within another tag element. Nested tag elements appears enclosed in "{" and "}"; certain doc tags, including "@link" and "@linkplain" are only meaningful as nested tags. Top-level (i.e., non-nested) doc tags begin on a new line; certain doc tags, including "@param" and "@see" are only meaningful as top-level tags.

This convenience methods checks to see whether the parent of this node is of type TagElement.

Returns:
true if this node is a nested tag element, and false if this node is either parented by a doc comment node (JSdoc), or is unparented