Package org.eclipse.jdt.core.dom

## Class TagElement

- java.lang.Object
- - org.eclipse.jdt.core.dom.ASTNode
  - - org.eclipse.jdt.core.dom.TagElement

All Implemented Interfaces:
  `IDocElement`

    public final class TagElement
    extends ASTNode
    implements IDocElement

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
         MethodRef
         MemberRef
         { TagElement }

Since:
  3.0
See Also:
  `Javadoc`
Restriction:
  This class is not intended to be instantiated by clients.

### Field Summary

Fields
`static ChildListPropertyDescriptor` `FRAGMENTS_PROPERTY` The "fragments" structural property of this node type (element type: `IDocElement`).
`static String` `TAG_API_NOTE` Javadoc tag name (value "@apiNote").
`static String` `TAG_AUTHOR` Standard doc tag name (value "@author").
`static String` `TAG_CODE` Standard inline doc tag name (value "@code").
`static String` `TAG_DEPRECATED` Standard doc tag name (value "@deprecated").
`static String` `TAG_DOCROOT` Standard inline doc tag name (value "@docRoot").
`static String` `TAG_EXCEPTION` Standard doc tag name (value "@exception").
`static String` `TAG_HIDDEN` Standard doc tag name (value "@hidden").
`static String` `TAG_IMPL_NOTE` Javadoc tag name (value "@implNote").
`static String` `TAG_IMPL_SPEC` Javadoc tag name (value "@implSpec").
`static String` `TAG_INDEX` Standard doc tag name (value "@index").
`static String` `TAG_INHERITDOC` Standard inline doc tag name (value "@inheritDoc").
`static String` `TAG_LINK` Standard inline doc tag name (value "@link").
`static String` `TAG_LINKPLAIN` Standard inline doc tag name (value "@linkplain").
`static String` `TAG_LITERAL` Standard inline doc tag name (value "@literal").
`static SimplePropertyDescriptor` `TAG_NAME_PROPERTY` The "tagName" structural property of this node type (type: `String`).
`static String` `TAG_PARAM` Standard doc tag name (value "@param").
`static String` `TAG_PROVIDES` Standard doc tag name (value "@provides").
`static String` `TAG_RETURN` Standard doc tag name (value "@return").
`static String` `TAG_SEE` Standard doc tag name (value "@see").
`static String` `TAG_SERIAL` Standard doc tag name (value "@serial").
`static String` `TAG_SERIALDATA` Standard doc tag name (value "@serialData").
`static String` `TAG_SERIALFIELD` Standard doc tag name (value "@serialField").
`static String` `TAG_SINCE` Standard doc tag name (value "@since").
`static String` `TAG_SUMMARY` Standard doc tag name (value "@summary").
`static String` `TAG_THROWS` Standard doc tag name (value "@throws").
`static String` `TAG_USES` Standard doc tag name (value "@uses").
`static String` `TAG_VALUE` Standard inline doc tag name (value "@value").
`static String` `TAG_VERSION` Standard doc tag name (value "@version").

### 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, 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, 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, NAME_QUALIFIED_TYPE, NORMAL_ANNOTATION, NULL_LITERAL, NUMBER_LITERAL, OPENS_DIRECTIVE, ORIGINAL, PACKAGE_DECLARATION, PARAMETERIZED_TYPE, PARENTHESIZED_EXPRESSION, POSTFIX_EXPRESSION, PREFIX_EXPRESSION, PRIMITIVE_TYPE, PROTECT, PROVIDES_DIRECTIVE, QUALIFIED_NAME, QUALIFIED_TYPE, 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_ELEMENT, THIS_EXPRESSION, THROW_STATEMENT, TRY_STATEMENT, TYPE_DECLARATION, TYPE_DECLARATION_STATEMENT, TYPE_LITERAL, TYPE_METHOD_REFERENCE, TYPE_PARAMETER, UNION_TYPE, USES_DIRECTIVE, VARIABLE_DECLARATION_EXPRESSION, VARIABLE_DECLARATION_FRAGMENT, VARIABLE_DECLARATION_STATEMENT, WHILE_STATEMENT, WILDCARD_TYPE`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`List` `fragments()` Returns the live list of fragments in this tag element.
`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 List` `propertyDescriptors​(int apiLevel)` Returns a list of structural property descriptors for this node type.
`void` `setTagName​(String tagName)` Sets the tag name of this node to the given value.

### 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`

### Field Detail

#### TAG_NAME_PROPERTY

    public static final SimplePropertyDescriptor TAG_NAME_PROPERTY

The "tagName" structural property of this node type (type: `String`).

Since:
  3.0

#### FRAGMENTS_PROPERTY

    public static final ChildListPropertyDescriptor FRAGMENTS_PROPERTY

The "fragments" structural property of this node type (element type: `IDocElement`).

Since:
  3.0

#### TAG_AUTHOR

    public static final String TAG_AUTHOR

Standard doc tag name (value "@author").

See Also:
  Constant Field Values

#### TAG_CODE

    public static final String TAG_CODE

Standard inline doc tag name (value "@code").

Note that this tag first appeared in J2SE 5.

Since:
  3.1
See Also:
  Constant Field Values

#### TAG_DEPRECATED

    public static final String TAG_DEPRECATED

Standard doc tag name (value "@deprecated").

See Also:
  Constant Field Values

#### TAG_DOCROOT

    public static final String TAG_DOCROOT

Standard inline doc tag name (value "@docRoot").

See Also:
  Constant Field Values

#### TAG_EXCEPTION

    public static final String TAG_EXCEPTION

Standard doc tag name (value "@exception").

See Also:
  Constant Field Values

#### TAG_HIDDEN

    public static final String TAG_HIDDEN

Standard doc tag name (value "@hidden").

Since:
  3.18
See Also:
  Constant Field Values

#### TAG_INDEX

    public static final String TAG_INDEX

Standard doc tag name (value "@index").

Since:
  3.18
See Also:
  Constant Field Values

#### TAG_INHERITDOC

    public static final String TAG_INHERITDOC

Standard inline doc tag name (value "@inheritDoc").

See Also:
  Constant Field Values

#### TAG_LINK

    public static final String TAG_LINK

Standard inline doc tag name (value "@link").

See Also:
  Constant Field Values

#### TAG_LINKPLAIN

    public static final String TAG_LINKPLAIN

Standard inline doc tag name (value "@linkplain").

See Also:
  Constant Field Values

#### TAG_LITERAL

    public static final String TAG_LITERAL

Standard inline doc tag name (value "@literal").

Note that this tag first appeared in J2SE 5.

Since:
  3.1
See Also:
  Constant Field Values

#### TAG_PARAM

    public static final String TAG_PARAM

Standard doc tag name (value "@param").

See Also:
  Constant Field Values

#### TAG_PROVIDES

    public static final String TAG_PROVIDES

Standard doc tag name (value "@provides").

Since:
  3.18
See Also:
  Constant Field Values

#### TAG_RETURN

    public static final String TAG_RETURN

Standard doc tag name (value "@return").

See Also:
  Constant Field Values

#### TAG_SEE

    public static final String TAG_SEE

Standard doc tag name (value "@see").

See Also:
  Constant Field Values

#### TAG_SERIAL

    public static final String TAG_SERIAL

Standard doc tag name (value "@serial").

See Also:
  Constant Field Values

#### TAG_SERIALDATA

    public static final String TAG_SERIALDATA

Standard doc tag name (value "@serialData").

See Also:
  Constant Field Values

#### TAG_SERIALFIELD

    public static final String TAG_SERIALFIELD

Standard doc tag name (value "@serialField").

See Also:
  Constant Field Values

#### TAG_SINCE

    public static final String TAG_SINCE

Standard doc tag name (value "@since").

See Also:
  Constant Field Values

#### TAG_SUMMARY

    public static final String TAG_SUMMARY

Standard doc tag name (value "@summary").

Since:
  3.18
See Also:
  Constant Field Values

#### TAG_THROWS

    public static final String TAG_THROWS

Standard doc tag name (value "@throws").

See Also:
  Constant Field Values

#### TAG_USES

    public static final String TAG_USES

Standard doc tag name (value "@uses").

Since:
  3.18
See Also:
  Constant Field Values

#### TAG_VALUE

    public static final String TAG_VALUE

Standard inline doc tag name (value "@value").

See Also:
  Constant Field Values

#### TAG_VERSION

    public static final String TAG_VERSION

Standard doc tag name (value "@version").

See Also:
  Constant Field Values

#### TAG_API_NOTE

    public static final String TAG_API_NOTE

Javadoc tag name (value "@apiNote").

Since:
  3.18
See Also:
  Constant Field Values

#### TAG_IMPL_SPEC

    public static final String TAG_IMPL_SPEC

Javadoc tag name (value "@implSpec").

Since:
  3.18
See Also:
  Constant Field Values

#### TAG_IMPL_NOTE

    public static final String TAG_IMPL_NOTE

Javadoc tag name (value "@implNote").

Since:
  3.18
See Also:
  Constant Field Values

### Method Detail

#### propertyDescriptors

    public static 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`)
Since:
  3.0

#### getTagName

    public 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​(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 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:

- "@see Foo#bar()" - TagElement with tag name "@see"; fragments() contains a single MethodRef node
- "@param args the program arguments" - TagElement with tag name "@param"; 2 fragments: SimpleName ("args"), TextElement (" the program arguments")
- "@return See {@link #foo foo} instead." - TagElement with tag name "@return"; 3 fragments: TextElement ("See "), TagElement (for "@link #foo foo"), TextElement (" instead.")

The use of Name, MethodRef, 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 `MethodRef`. 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: `IDocElement`)

#### 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 (`Javadoc`), or is unparented