<s> package org . eclipse . jdt . core . dom ; import java . util . ArrayList ; import java . util . List ; public final class NormalAnnotation extends Annotation { public static final ChildPropertyDescriptor TYPE_NAME_PROPERTY = internalTypeNamePropertyFactory ( NormalAnnotation . class ) ; public static final ChildListPropertyDescriptor VALUES_PROPERTY = new ChildListPropertyDescriptor ( NormalAnnotation . class , "values" , MemberValuePair . class , CYCLE_RISK ) ; private static final List PROPERTY_DESCRIPTORS ; static { List propertyList = new ArrayList ( 3 ) ; createPropertyList ( NormalAnnotation . class , propertyList ) ; addProperty ( TYPE_NAME_PROPERTY , propertyList ) ; addProperty ( VALUES_PROPERTY , propertyList ) ; PROPERTY_DESCRIPTORS = reapPropertyList ( propertyList ) ; } public static List propertyDescriptors ( int apiLevel ) { return PROPERTY_DESCRIPTORS ; } private ASTNode . NodeList values = new ASTNode . NodeList ( VALUES_PROPERTY ) ; NormalAnnotation ( AST ast ) { super ( ast ) ; unsupportedIn2 ( ) ; } final List internalStructuralPropertiesForType ( int apiLevel ) { return propertyDescriptors ( apiLevel ) ; } final ASTNode internalGetSetChildProperty ( ChildPropertyDescriptor property , boolean get , ASTNode child ) { if ( property == TYPE_NAME_PROPERTY ) { if ( get ) { return getTypeName ( ) ; } else { setTypeName ( ( Name ) child ) ; return null ; } } return super . internalGetSetChildProperty ( property , get , child ) ; } final List internalGetChildListProperty ( ChildListPropertyDescriptor property ) { if ( property == VALUES_PROPERTY ) { return values ( ) ; } return super . internalGetChildListProperty ( property ) ; } final ChildPropertyDescriptor internalTypeNameProperty ( ) { return TYPE_NAME_PROPERTY ; } final int getNodeType0 ( ) { return NORMAL_ANNOTATION ; } ASTNode clone0 ( AST target ) { NormalAnnotation result = new NormalAnnotation ( target ) ; result . setSourceRange ( getStartPosition ( ) , getLength ( ) ) ; result . setTypeName ( ( Name ) ASTNode . copySubtree ( target , getTypeName ( ) ) ) ; result . values ( ) . addAll ( ASTNode . copySubtrees ( target , values ( ) ) ) ; 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 ) { acceptChild ( visitor , getTypeName ( ) ) ; acceptChildren ( visitor , this . values ) ; } visitor . endVisit ( this ) ; } public List values ( ) { return this . values ; } int memSize ( ) { return super . memSize ( ) + 1 * 4 ; } int treeSize ( ) { return memSize ( ) + ( this . typeName == null ? 0 : getTypeName ( ) . treeSize ( ) ) + this . values . listSize ( ) ; } } </s>