Class TagElement

java.lang.Object
org.aspectj.org.eclipse.jdt.core.dom.ASTNode
org.aspectj.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
  • Field Details

    • 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_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 Details

    • 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