<s> package org . eclipse . jdt . core . dom ; import java . util . ArrayList ; import java . util . List ; public final class TagElement extends ASTNode implements IDocElement { public static final SimplePropertyDescriptor TAG_NAME_PROPERTY = new SimplePropertyDescriptor ( TagElement . class , "tagName" , String . class , OPTIONAL ) ; public static final ChildListPropertyDescriptor FRAGMENTS_PROPERTY = new ChildListPropertyDescriptor ( TagElement . class , "fragments" , IDocElement . class , CYCLE_RISK ) ; private static final List PROPERTY_DESCRIPTORS ; static { List propertyList = new ArrayList ( 3 ) ; createPropertyList ( TagElement . class , propertyList ) ; addProperty ( TAG_NAME_PROPERTY , propertyList ) ; addProperty ( FRAGMENTS_PROPERTY , propertyList ) ; PROPERTY_DESCRIPTORS = reapPropertyList ( propertyList ) ; } public static List propertyDescriptors ( int apiLevel ) { return PROPERTY_DESCRIPTORS ; } public static final String TAG_AUTHOR = "@author" ; public static final String TAG_CODE = "@code" ; public static final String TAG_DEPRECATED = "@deprecated" ; public static final String TAG_DOCROOT = "@docRoot" ; public static final String TAG_EXCEPTION = "@exception" ; public static final String TAG_INHERITDOC = "@inheritDoc" ; public static final String TAG_LINK = "@link" ; public static final String TAG_LINKPLAIN = "@linkplain" ; public static final String TAG_LITERAL = "@literal" ; public static final String TAG_PARAM = "@param" ; public static final String TAG_RETURN = "@return" ; public static final String TAG_SEE = "@see" ; public static final String TAG_SERIAL = "@serial" ; public static final String TAG_SERIALDATA = "@serialData" ; public static final String TAG_SERIALFIELD = "@serialField" ; public static final String TAG_SINCE = "@since" ; public static final String TAG_THROWS = "@throws" ; public static final String TAG_VALUE = "@value" ; public static final String TAG_VERSION = "@version" ; private String optionalTagName = null ; private ASTNode . NodeList fragments = new ASTNode . NodeList ( FRAGMENTS_PROPERTY ) ; TagElement ( AST ast ) { super ( ast ) ; } final List internalStructuralPropertiesForType ( int apiLevel ) { return propertyDescriptors ( apiLevel ) ; } final Object internalGetSetObjectProperty ( SimplePropertyDescriptor property , boolean get , Object value ) { if ( property == TAG_NAME_PROPERTY ) { if ( get ) { return getTagName ( ) ; } else { setTagName ( ( String ) value ) ; return null ; } } return super . internalGetSetObjectProperty ( property , get , value ) ; } final List internalGetChildListProperty ( ChildListPropertyDescriptor property ) { if ( property == FRAGMENTS_PROPERTY ) { return fragments ( ) ; } return super . internalGetChildListProperty ( property ) ; } final int getNodeType0 ( ) { return TAG_ELEMENT ; } ASTNode clone0 ( AST target ) { TagElement result = new TagElement ( target ) ; result . setSourceRange ( getStartPosition ( ) , getLength ( ) ) ; result . setTagName ( getTagName ( ) ) ; result . fragments ( ) . addAll ( ASTNode . copySubtrees ( target , fragments ( ) ) ) ; return result ; } final boolean subtreeMatch0 ( ASTMatcher matcher , Object other ) { return matcher . match ( this , other ) ; } void accept0 ( ASTVisitor visitor ) { boolean visitChildren = visitor . visit ( this ) ; if ( visitChildren ) { acceptChildren ( visitor , this . fragments ) ; } visitor . endVisit ( this ) ; } public String getTagName ( ) { return this . optionalTagName ; } public void setTagName ( String tagName ) { preValueChange ( TAG_NAME_PROPERTY ) ; this . optionalTagName = tagName ; postValueChange ( TAG_NAME_PROPERTY ) ; } public List fragments ( ) { return this . fragments ; } public boolean isNested ( ) { return ( getParent ( ) instanceof TagElement ) ; } int memSize ( ) { int size = BASE_NODE_SIZE + 2 * 4 + stringSize ( this . optionalTagName ) ; return size ; } int treeSize ( ) { return memSize ( ) + this . fragments . listSize ( ) ; } } </s>