List of usage examples for org.eclipse.jdt.core.dom AnnotationTypeDeclaration setName
public void setName(SimpleName typeName)
From source file:org.eclipse.jdt.core.dom.ASTConverter.java
License:Open Source License
private AnnotationTypeDeclaration convertToAnnotationDeclaration( org.eclipse.jdt.internal.compiler.ast.TypeDeclaration typeDeclaration) { checkCanceled();/* w ww .j a v a 2 s. c om*/ if (this.scanner.sourceLevel < ClassFileConstants.JDK1_5) return null; AnnotationTypeDeclaration typeDecl = this.ast.newAnnotationTypeDeclaration(); setModifiers(typeDecl, typeDeclaration); final SimpleName typeName = new SimpleName(this.ast); typeName.internalSetIdentifier(new String(typeDeclaration.name)); typeName.setSourceRange(typeDeclaration.sourceStart, typeDeclaration.sourceEnd - typeDeclaration.sourceStart + 1); typeDecl.setName(typeName); typeDecl.setSourceRange(typeDeclaration.declarationSourceStart, typeDeclaration.bodyEnd - typeDeclaration.declarationSourceStart + 1); buildBodyDeclarations(typeDeclaration, typeDecl, false); // The javadoc comment is now got from list store in compilation unit declaration if (this.resolveBindings) { recordNodes(typeDecl, typeDeclaration); recordNodes(typeName, typeDeclaration); typeDecl.resolveBinding(); } return typeDecl; }
From source file:org.spoofax.interpreter.adapter.ecj.ECJFactory.java
License:LGPL
@SuppressWarnings({ "unchecked", "rawtypes" }) private IStrategoAppl constructASTNode(IStrategoConstructor ctr, IStrategoTerm[] kids) { int index = ctorNameToIndex(ctr); switch (index) { case ANNOTATION_TYPE_DECLARATION: { if ((!isJavadoc(kids[0]) && !isNone(kids[0])) || !isExtendedModifierList(kids[1]) || !isSimpleName(kids[2]) || !isBodyDeclarationList(kids[3])) return null; AnnotationTypeDeclaration x = ast.newAnnotationTypeDeclaration(); if (isNone(kids[0])) x.setJavadoc(null);// ww w.j a va 2 s .c o m else x.setJavadoc(asJavadoc(kids[0])); x.modifiers().addAll(asExtendedModifierList(kids[1])); x.setName(asSimpleName(kids[2])); x.bodyDeclarations().addAll(asBodyDeclarationList(kids[3])); return wrap(x); } case ANNOTATION_TYPE_MEMBER_DECLARATION: { if ((!isJavadoc(kids[0]) && !isNone(kids[0])) || !isModifierList(kids[1]) || !isType(kids[2]) || !isSimpleName(kids[3]) || (!isExpression(kids[4]) && !isNone(kids[4]))) return null; AnnotationTypeMemberDeclaration x = ast.newAnnotationTypeMemberDeclaration(); x.setJavadoc(asJavadoc(kids[0])); x.modifiers().addAll(asModifierList(kids[1])); x.setType(asType(kids[2])); x.setName(asSimpleName(kids[3])); if (isNone(kids[4])) x.setDefault(null); else x.setDefault(asExpression(kids[4])); return wrap(x); } case ANONYMOUS_CLASS_DECLARATION: { if (!isBodyDeclarationList(kids[0])) return null; AnonymousClassDeclaration x = ast.newAnonymousClassDeclaration(); x.bodyDeclarations().addAll(asBodyDeclarationList(kids[0])); return wrap(x); } case ARRAY_ACCESS: { if (!isExpression(kids[0]) || !isExpression(kids[1])) return null; ArrayAccess x = ast.newArrayAccess(); x.setArray(asExpression(kids[0])); x.setIndex(asExpression(kids[1])); return wrap(x); } case ARRAY_CREATION: { if (!isArrayType(kids[0]) || !isExpressionList(kids[1]) || (!isArrayInitializer(kids[2]) && !isNone(kids[2]))) return null; ArrayCreation x = ast.newArrayCreation(); x.setType(asArrayType(kids[0])); x.dimensions().addAll(asExpressionList(kids[1])); if (isNone(kids[2])) x.setInitializer(null); else x.setInitializer(asArrayInitializer(kids[2])); return wrap(x); } case ARRAY_INITIALIZER: { if (!isExpressionList(kids[0])) return null; ArrayInitializer x = ast.newArrayInitializer(); x.expressions().addAll(asExpressionList(kids[0])); return wrap(x); } case ARRAY_TYPE: { if (!isType(kids[0]) || !isInt(kids[1]) || !isType(kids[2])) return null; ArrayType x = ast.newArrayType(asType(kids[2]), asInt(kids[1])); x.setComponentType(asType(kids[0])); return wrap(x); } case ASSERT_STATEMENT: { if (!isExpression(kids[0]) || !(isExpression(kids[1]) || isNone(kids[1]))) return null; AssertStatement x = ast.newAssertStatement(); x.setExpression(asExpression(kids[0])); if (isNone(kids[1])) x.setMessage(null); else x.setMessage(asExpression(kids[1])); return wrap(x); } case ASSIGNMENT: { if (!isAssignmentOperator(kids[0]) || !isExpression(kids[1]) || !isExpression(kids[2])) return null; Assignment x = ast.newAssignment(); x.setOperator(asAssignmentOperator(kids[0])); x.setLeftHandSide(asExpression(kids[1])); x.setRightHandSide(asExpression(kids[2])); return wrap(x); } case ASSIGNMENT_OPERATOR: { if (!isString(kids[0])) return null; return wrap(Assignment.Operator.toOperator(asString(kids[0]))); } case BLOCK: { if (!isStatementList(kids[0])) return null; Block x = ast.newBlock(); x.statements().addAll(asStatementList(kids[0])); return wrap(x); } case BLOCK_COMMENT: { BlockComment x = ast.newBlockComment(); return wrap(x); } case BOOLEAN_LITERAL: { if (!isInt(kids[0])) return null; return wrap(ast.newBooleanLiteral(asInt(kids[0]) == 1)); } case BOOLEAN_TYPE: { return wrap(ast.newPrimitiveType(PrimitiveType.BOOLEAN)); } case BREAK_STATEMENT: { if (!isSimpleName(kids[0]) && !isNone(kids[0])) return null; BreakStatement x = ast.newBreakStatement(); if (isNone(kids[0])) x.setLabel(null); else x.setLabel(asSimpleName(kids[0])); return wrap(x); } case BYTE_TYPE: { return wrap(ast.newPrimitiveType(PrimitiveType.BYTE)); } case CAST_EXPRESSION: { if (!isType(kids[0]) || !isExpression(kids[1])) return null; CastExpression x = ast.newCastExpression(); x.setType(asType(kids[0])); x.setExpression(asExpression(kids[1])); return wrap(x); } case CATCH_CLAUSE: { if (!isSingleVariableDeclaration(kids[0]) || !isBlock(kids[1])) return null; CatchClause x = ast.newCatchClause(); x.setException(asSingleVariableDeclaration(kids[0])); x.setBody(asBlock(kids[1])); return wrap(x); } case CHARACTER_LITERAL: { if (!isInt(kids[0])) return null; CharacterLiteral x = ast.newCharacterLiteral(); x.setCharValue((char) asInt(kids[0])); return wrap(x); } case CLASS_INSTANCE_CREATION: { if ((!isExpression(kids[0]) && !isNone(kids[0])) || !isType(kids[1]) || (!isAnonymousClassDeclaration(kids[2]) && !isNone(kids[2])) || !isExpressionList(kids[3])) return null; ClassInstanceCreation x = ast.newClassInstanceCreation(); if (isNone(kids[0])) x.setExpression(null); else x.setExpression(asExpression(kids[0])); x.setType(asType(kids[1])); if (isNone(kids[2])) x.setAnonymousClassDeclaration(null); else x.setAnonymousClassDeclaration(asAnonymousClassDeclaration(kids[2])); x.arguments().addAll(asExpressionList(kids[3])); return wrap(x); } case COMPILATION_UNIT: { if ((!isPackageDeclaration(kids[0]) && !isNone(kids[0])) || !isImportDeclarationList(kids[1]) || !isAbstractTypeDeclarationList(kids[2])) return null; CompilationUnit x = ast.newCompilationUnit(); if (isNone(kids[0])) x.setPackage(null); else x.setPackage(asPackageDeclaration(kids[0])); x.imports().addAll(asImportDeclarationList(kids[1])); x.types().addAll(asAbstractTypeDeclarationList(kids[2])); return wrap(x); } case CONDITIONAL_EXPRESSION: { if (!isExpression(kids[0]) || !isExpression(kids[1]) || !isExpression(kids[2])) return null; ConditionalExpression x = ast.newConditionalExpression(); x.setExpression(asExpression(kids[0])); x.setThenExpression(asExpression(kids[1])); x.setElseExpression(asExpression(kids[2])); return wrap(x); } case CONSTRUCTOR_INVOCATION: { if (!isExpressionList(kids[0])) return null; ConstructorInvocation x = ast.newConstructorInvocation(); x.arguments().addAll(asExpressionList(kids[0])); return wrap(x); } case CONTINUE_STATEMENT: { if (!isSimpleName(kids[0]) && !isNone(kids[0])) return null; ContinueStatement x = ast.newContinueStatement(); if (isNone(kids[0])) x.setLabel(null); else x.setLabel(asSimpleName(kids[0])); return wrap(x); } case DO_STATEMENT: { DoStatement x = ast.newDoStatement(); x.setExpression(asExpression(kids[0])); x.setBody(asStatement(kids[1])); return wrap(x); } case DOUBLE_TYPE: { return wrap(ast.newPrimitiveType(PrimitiveType.DOUBLE)); } case EMPTY_STATEMENT: { return wrap(ast.newEmptyStatement()); } case ENHANCED_FOR_STATEMENT: { if (!isSingleVariableDeclaration(kids[0]) || !isExpression(kids[1]) || !isStatement(kids[2])) return null; EnhancedForStatement x = ast.newEnhancedForStatement(); x.setParameter(asSingleVariableDeclaration(kids[0])); x.setExpression(asExpression(kids[1])); x.setBody(asStatement(kids[2])); return wrap(x); } case ENUM_CONSTANT_DECLARATION: { if ((!isJavadoc(kids[0]) && !isNone(kids[0])) || !isModifierList(kids[1]) || !isSimpleName(kids[2]) || !isExpressionList(kids[3]) || !isAnonymousClassDeclaration(kids[4])) return null; EnumConstantDeclaration x = ast.newEnumConstantDeclaration(); if (isNone(kids[0])) x.setJavadoc(null); else x.setJavadoc(asJavadoc(kids[0])); x.modifiers().addAll(asModifierList(kids[1])); x.setName(asSimpleName(kids[2])); x.arguments().addAll(asExpressionList(kids[3])); x.setAnonymousClassDeclaration(asAnonymousClassDeclaration(kids[4])); return wrap(x); } case ENUM_DECLARATION: { if ((!isJavadoc(kids[0]) && !isNone(kids[0])) || !isModifierList(kids[1]) || !isSimpleName(kids[2]) || !isTypeList(kids[3]) || !isEnumConstantDeclarationList(kids[4]) || !isBodyDeclarationList(kids[5])) return null; EnumDeclaration x = ast.newEnumDeclaration(); if (isNone(kids[0])) x.setJavadoc(null); else x.setJavadoc(asJavadoc(kids[0])); x.modifiers().addAll(asModifierList(kids[1])); x.setName(asSimpleName(kids[2])); x.superInterfaceTypes().addAll(asTypeList(kids[3])); x.enumConstants().addAll(asEnumConstantDeclarationList(kids[4])); x.bodyDeclarations().addAll(asBodyDeclarationList(kids[5])); return wrap(x); } case EXPRESSION_STATEMENT: { if (!isExpression(kids[0])) return null; return wrap(ast.newExpressionStatement(asExpression(kids[0]))); } case FIELD_ACCESS: { if (!isExpression(kids[0]) || !isSimpleName(kids[1])) return null; FieldAccess x = ast.newFieldAccess(); x.setExpression(asExpression(kids[0])); x.setName(asSimpleName(kids[1])); return wrap(x); } case FIELD_DECLARATION: { if ((!isJavadoc(kids[0]) && !isNone(kids[0])) || !isModifierList(kids[1]) || !isType(kids[2]) || !isNonEmptyVariableDeclarationFragmentList(kids[3])) return null; List y = asFragmentList(kids[3]); FieldDeclaration x = ast.newFieldDeclaration((VariableDeclarationFragment) y.remove(0)); if (isNone(kids[0])) x.setJavadoc(null); else x.setJavadoc(asJavadoc(kids[0])); x.modifiers().addAll(asModifierList(kids[1])); x.setType(asType(kids[2])); x.fragments().addAll(y); return wrap(x); } case FLOAT_TYPE: { return wrap(ast.newPrimitiveType(PrimitiveType.FLOAT)); } case FOR_STATEMENT: { if (!isExpressionList(kids[0]) || (!isExpression(kids[1]) && !isNone(kids[1])) || !isExpressionList(kids[2]) || !isStatement(kids[3])) return null; ForStatement x = ast.newForStatement(); x.initializers().addAll(asExpressionList(kids[0])); if (isNone(kids[1])) x.setExpression(null); else x.setExpression(asExpression(kids[1])); x.updaters().addAll(asExpressionList(kids[2])); x.setBody(asStatement(kids[3])); return wrap(x); } case IF_STATEMENT: { if (!isExpression(kids[0]) || !isStatement(kids[1]) || (!isStatement(kids[2]) && !isNone(kids[2]))) return null; IfStatement x = ast.newIfStatement(); x.setExpression(asExpression(kids[0])); x.setThenStatement(asStatement(kids[1])); if (isNone(kids[2])) x.setElseStatement(null); else x.setElseStatement(asStatement(kids[2])); return wrap(x); } case IMPORT_DECLARATION: { if (!isName(kids[0]) && !isInt(kids[1]) && !isInt(kids[2])) return null; ImportDeclaration x = ast.newImportDeclaration(); x.setName(asName(kids[0])); x.setStatic(((IStrategoInt) kids[1]).intValue() > 0); x.setOnDemand(((IStrategoInt) kids[2]).intValue() > 0); return wrap(x); } case INFIX_EXPRESSION: { if (!isOperator(kids[0]) || !isExpression(kids[1]) || !isExpression(kids[2]) || !isExpressionList(kids[3])) return null; InfixExpression x = ast.newInfixExpression(); x.setOperator(asOperator(kids[0])); x.setLeftOperand(asExpression(kids[1])); x.setRightOperand(asExpression(kids[2])); x.extendedOperands().addAll(asExpressionList(kids[3])); return wrap(x); } case INITIALIZER: { if (!isBlock(kids[0])) return null; Initializer x = ast.newInitializer(); x.setBody(asBlock(kids[0])); return wrap(x); } case INSTANCEOF_EXPRESSION: { if (!isExpression(kids[0]) || !isType(kids[1])) return null; InstanceofExpression x = ast.newInstanceofExpression(); x.setLeftOperand(asExpression(kids[0])); x.setRightOperand(asType(kids[1])); return wrap(x); } case INT_TYPE: { return wrap(ast.newPrimitiveType(PrimitiveType.INT)); } case JAVADOC: { if (!isTagElementList(kids[0])) return null; Javadoc x = ast.newJavadoc(); x.tags().addAll(asTagElementList(kids[0])); return wrap(x); } case LABELED_STATEMENT: { if (!isSimpleName(kids[0]) || !isStatement(kids[1])) return null; LabeledStatement x = ast.newLabeledStatement(); x.setLabel(asSimpleName(kids[0])); x.setBody(asStatement(kids[1])); return wrap(x); } case LINE_COMMENT: { LineComment x = ast.newLineComment(); return wrap(x); } case LONG_TYPE: { return wrap(ast.newPrimitiveType(PrimitiveType.INT)); } case MARKER_ANNOTATION: { if (!isName(kids[0])) return null; MarkerAnnotation x = ast.newMarkerAnnotation(); x.setTypeName(asName(kids[0])); return wrap(x); } case MEMBER_REF: { if (!isSimpleName(kids[0]) || !isName(kids[1])) return null; MemberRef x = ast.newMemberRef(); x.setName(asSimpleName(kids[0])); x.setQualifier(asName(kids[1])); return wrap(x); } case MEMBER_VALUE_PAIR: { if (!isSimpleName(kids[0]) || !isExpression(kids[1])) return null; MemberValuePair x = ast.newMemberValuePair(); x.setName(asSimpleName(kids[0])); x.setValue(asExpression(kids[1])); return wrap(x); } case METHOD_DECLARATION: { if ((!isJavadoc(kids[0]) && !isNone(kids[0])) || !isExtendedModifierList(kids[1]) || (!isType(kids[2]) && !isNone(kids[2])) || !isTypeParameterList(kids[3]) || !isSimpleName(kids[4]) || !isSingleVariableDeclarationList(kids[5]) || !isNameList(kids[6]) || (!isBlock(kids[7]) && !isNone(kids[7]))) return null; MethodDeclaration x = ast.newMethodDeclaration(); if (isNone(kids[0])) x.setJavadoc(null); else x.setJavadoc(asJavadoc(kids[0])); x.modifiers().addAll(asExtendedModifierList(kids[1])); if (isNone(kids[2])) { x.setReturnType2(null); x.setConstructor(true); } else x.setReturnType2(asType(kids[2])); x.typeParameters().addAll(asTypeParameterList(kids[3])); x.setName(asSimpleName(kids[4])); x.parameters().addAll(asSingleVariableDeclarationList(kids[5])); x.thrownExceptions().addAll(asNameList(kids[6])); if (isNone(kids[7])) x.setBody(null); else x.setBody(asBlock(kids[7])); return wrap(x); } case METHOD_INVOCATION: { if ((!isExpression(kids[0]) && !isNone(kids[0])) || !isSimpleName(kids[1]) || !isTypeList(kids[2]) || !isExpressionList(kids[3])) return null; MethodInvocation x = ast.newMethodInvocation(); if (isNone(kids[0])) x.setExpression(null); else x.setExpression(asExpression(kids[0])); x.setName(asSimpleName(kids[1])); x.typeArguments().addAll(asTypeList(kids[2])); x.arguments().addAll(asExpressionList(kids[3])); return wrap(x); } case METHOD_REF: { if (!isSimpleName(kids[0]) || !isName(kids[1]) || !isMethodRefParameterList(kids[2])) return null; MethodRef x = ast.newMethodRef(); x.setName(asSimpleName(kids[0])); x.setQualifier(asName(kids[1])); x.parameters().addAll(asMethodRefParameterList(kids[2])); return wrap(x); } case METHOD_REF_PARAMETER: { if (!isType(kids[0]) || !(isSimpleName(kids[1]) || isNone(kids[1]))) return null; MethodRefParameter x = ast.newMethodRefParameter(); x.setType(asType(kids[0])); if (isNone(kids[1])) x.setName(null); else x.setName(asSimpleName(kids[1])); return wrap(x); } case MODIFIER: { if (!isModifierKeyword(kids[0])) return null; return wrap(ast.newModifier(asModifierKeyword(kids[0]))); } case MODIFIER_KEYWORD: { if (!isInt(kids[0])) return null; return wrap(Modifier.ModifierKeyword.fromFlagValue(asInt(kids[0]))); } case NONE: return None.INSTANCE; case NORMAL_ANNOTATION: { if (!isName(kids[0]) || !isMemberValuePairList(kids[1])) return null; NormalAnnotation x = ast.newNormalAnnotation(); x.setTypeName(asName(kids[0])); x.values().addAll(asMemberValuePairList(kids[1])); return wrap(x); } case NULL_LITERAL: { return wrap(ast.newNullLiteral()); } case NUMBER_LITERAL: { if (!isString(kids[0])) return null; return wrap(ast.newNumberLiteral(asString(kids[0]))); } case PACKAGE_DECLARATION: { if ((!isJavadoc(kids[0]) && !isNone(kids[0])) || !isAnnotations(kids[1]) || !isName(kids[2])) return null; PackageDeclaration pd = ast.newPackageDeclaration(); if (isNone(kids[0])) pd.setJavadoc(null); else pd.setJavadoc(getJavadoc(kids[0])); pd.annotations().addAll(getAnnotations(kids[1])); pd.setName(asName(kids[2])); return wrap(pd); } case PARAMETERIZED_TYPE: { if (!isType(kids[0]) || !isTypeList(kids[1])) return null; ParameterizedType x = ast.newParameterizedType(asType(kids[0])); x.typeArguments().addAll(asTypeList(kids[1])); return wrap(x); } case PARENTHESIZED_EXPRESSION: { if (!isExpression(kids[0])) return null; ParenthesizedExpression x = ast.newParenthesizedExpression(); x.setExpression(asExpression(kids[0])); return wrap(x); } case POSTFIX_EXPRESSION: { if (!isPostfixOperator(kids[0]) || !isExpression(kids[1])) return null; PostfixExpression x = ast.newPostfixExpression(); x.setOperator(asPostfixOperator(kids[0])); x.setOperand(asExpression(kids[1])); return wrap(x); } case POSTFIX_EXPRESSION_OPERATOR: { if (!isString(kids[0])) return null; return wrap(PostfixExpression.Operator.toOperator(asString(kids[0]))); } case PREFIX_EXPRESSION: { if (!isPrefixOperator(kids[0]) || !isExpression(kids[1])) return null; PrefixExpression x = ast.newPrefixExpression(); x.setOperator(asPrefixOperator(kids[0])); x.setOperand(asExpression(kids[1])); return wrap(x); } case PREFIX_EXPRESSION_OPERATOR: { if (!isString(kids[0])) return null; return wrap(PrefixExpression.Operator.toOperator(asString(kids[0]))); } case PRIMITIVE_TYPE: { if (!isString(kids[0])) return null; return wrap(ast.newPrimitiveType(asTypeCode(kids[0]))); } case QUALIFIED_NAME: { if (!isName(kids[0]) || !isSimpleName(kids[1])) return null; return wrap(ast.newQualifiedName(asName(kids[0]), asSimpleName(kids[1]))); } case QUALIFIED_TYPE: { if (!isType(kids[0]) || !isSimpleName(kids[1])) return null; return wrap(ast.newQualifiedType(asType(kids[0]), asSimpleName(kids[1]))); } case RETURN_STATEMENT: { if (!(isExpression(kids[0]) || isNone(kids[0]))) return null; ReturnStatement x = ast.newReturnStatement(); if (isNone(kids[0])) x.setExpression(null); else x.setExpression(asExpression(kids[0])); return wrap(x); } case SIMPLE_NAME: { if (!isString(kids[0])) return null; return wrap(ast.newSimpleName(asString(kids[0]))); } case SIMPLE_TYPE: { if (!isName(kids[0])) return null; return wrap(ast.newSimpleType(asName(kids[0]))); } case SINGLE_MEMBER_ANNOTATION: { if (!isName(kids[0]) || !isExpression(kids[1])) return null; SingleMemberAnnotation x = ast.newSingleMemberAnnotation(); x.setTypeName(asName(kids[0])); x.setValue(asExpression(kids[1])); return wrap(x); } case SINGLE_VARIABLE_DECLARATION: { if (!isModifierList(kids[0]) || !isType(kids[1]) || !isName(kids[2]) || !isInt(kids[3]) || (!isExpression(kids[4]) && !isNone(kids[4]))) return null; SingleVariableDeclaration x = ast.newSingleVariableDeclaration(); x.modifiers().addAll(asModifierList(kids[0])); x.setType(asType(kids[1])); x.setName(asSimpleName(kids[2])); x.setExtraDimensions(asInt(kids[3])); if (isNone(kids[4])) x.setInitializer(null); else x.setInitializer(asExpression(kids[4])); return wrap(x); } case STRING_LITERAL: { if (!isString(kids[0])) return null; StringLiteral x = ast.newStringLiteral(); x.setLiteralValue(asString(kids[0])); return wrap(x); } case SUPER_CONSTRUCTOR_INVOCATION: { if ((!isExpression(kids[0]) && !isNone(kids[0])) || !isTypeList(kids[1]) || !isExpressionList(kids[2])) return null; SuperConstructorInvocation x = ast.newSuperConstructorInvocation(); if (isNone(kids[0])) x.setExpression(null); else x.setExpression(asExpression(kids[0])); x.typeArguments().addAll(asTypeList(kids[1])); x.arguments().addAll(asExpressionList(kids[2])); return wrap(x); } case SUPER_FIELD_ACCESS: { if ((!isName(kids[0]) && !isNone(kids[0])) || !isSimpleName(kids[1])) return null; SuperFieldAccess x = ast.newSuperFieldAccess(); if (isNone(kids[0])) x.setQualifier(null); else x.setQualifier(asName(kids[0])); x.setName(asSimpleName(kids[1])); return wrap(x); } case SUPER_METHOD_INVOCATION: { if ((!isName(kids[0]) && !isNone(kids[0])) || !isTypeList(kids[1]) || !isSimpleName(kids[2]) || !isExpressionList(kids[3])) return null; SuperMethodInvocation x = ast.newSuperMethodInvocation(); if (isNone(kids[0])) x.setQualifier(null); else x.setQualifier(asName(kids[0])); x.typeArguments().addAll(asTypeList(kids[1])); x.setName(asSimpleName(kids[2])); x.arguments().addAll(asExpressionList(kids[3])); return wrap(x); } case SWITCH_CASE: { if (!isExpression(kids[0]) && !isNone(kids[0])) return null; SwitchCase x = ast.newSwitchCase(); if (isNone(kids[0])) x.setExpression(null); else x.setExpression(asExpression(kids[0])); return wrap(x); } case SWITCH_STATEMENT: { if (!isExpression(kids[0]) || !isStatementList(kids[1])) return null; SwitchStatement x = ast.newSwitchStatement(); x.setExpression(asExpression(kids[0])); x.statements().addAll(asStatementList(kids[1])); return wrap(x); } case SYNCHRONIZED_STATEMENT: { if (!isExpression(kids[0]) || !isBlock(kids[1])) return null; SynchronizedStatement x = ast.newSynchronizedStatement(); x.setExpression(asExpression(kids[0])); x.setBody(asBlock(kids[1])); return wrap(x); } case TAG_ELEMENT: { if ((!isString(kids[0]) && !isNone(kids[0])) || !isASTNodeList(kids[1])) return null; TagElement x = ast.newTagElement(); if (isNone(kids[0])) x.setTagName(null); else x.setTagName(asString(kids[0])); x.fragments().addAll(asASTNodeList(kids[1])); return wrap(x); } case TEXT_ELEMENT: { if (!isString(kids[0])) return null; TextElement x = ast.newTextElement(); x.setText(asString(kids[0])); return wrap(x); } case THIS_EXPRESSION: { if (!isName(kids[0]) && !isNone(kids[0])) return null; ThisExpression x = ast.newThisExpression(); if (isNone(kids[0])) x.setQualifier(null); else x.setQualifier(asName(kids[0])); return wrap(x); } case THROW_STATEMENT: { if (!isExpression(kids[0])) return null; ThrowStatement x = ast.newThrowStatement(); x.setExpression(asExpression(kids[0])); return wrap(x); } case TRY_STATEMENT: { if (!isBlock(kids[0]) || !isCatchClauseList(kids[1]) || (!isBlock(kids[2]) && !isNone(kids[2]))) return null; TryStatement x = ast.newTryStatement(); x.setBody(asBlock(kids[0])); x.catchClauses().addAll(asCatchClauseList(kids[1])); if (isNone(kids[2])) x.setFinally(null); else x.setFinally(asBlock(kids[2])); return wrap(x); } case TYPE_DECLARATION: { if ((!isJavadoc(kids[0]) && !isNone(kids[0])) || !isModifierList(kids[1]) || !isSimpleName(kids[2]) || !isTypeParameterList(kids[3]) || (!isType(kids[4]) && !isNone(kids[4])) || !isTypeList(kids[5]) || !isBodyDeclarationList(kids[6]) || !isInt(kids[7])) return null; TypeDeclaration x = ast.newTypeDeclaration(); if (isNone(kids[0])) x.setJavadoc(null); else x.setJavadoc(asJavadoc(kids[0])); x.modifiers().addAll(asModifierList(kids[1])); x.setName(asSimpleName(kids[2])); x.typeParameters().addAll(asTypeParameterList(kids[3])); if (isNone(kids[4])) x.setSuperclassType(null); else x.setSuperclassType(asType(kids[4])); x.superInterfaceTypes().addAll(asTypeList(kids[5])); x.bodyDeclarations().addAll(asBodyDeclarationList(kids[6])); x.setInterface(asInt(kids[7]) == 1); return wrap(x); } case TYPE_DECLARATION_STATEMENT: { if (!isTypeDecl(kids[0])) return null; return wrap(ast.newTypeDeclarationStatement(asTypeDecl(kids[0]))); } case TYPE_LITERAL: { if (!isType(kids[0])) return null; TypeLiteral x = ast.newTypeLiteral(); x.setType(asType(kids[0])); return wrap(x); } case TYPE_PARAMETER: { if (!isSimpleName(kids[0]) || !isTypeList(kids[1])) return null; TypeParameter x = ast.newTypeParameter(); x.setName(asSimpleName(kids[0])); x.typeBounds().addAll(asTypeList(kids[1])); return wrap(x); } case VARIABLE_DECLARATION_EXPRESSION: { if (!isModifierList(kids[0]) || !isType(kids[1]) || !isNonEmptyVariableDeclarationFragmentList(kids[2])) return null; List y = asFragmentList(kids[2]); VariableDeclarationExpression x = ast .newVariableDeclarationExpression((VariableDeclarationFragment) y.remove(0)); x.modifiers().addAll(asModifierList(kids[0])); x.setType(asType(kids[1])); x.fragments().addAll(y); return wrap(x); } case VARIABLE_DECLARATION_FRAGMENT: { if (!isSimpleName(kids[0]) || !isInt(kids[1]) || (!isExpression(kids[2]) && !isNone(kids[2]))) return null; VariableDeclarationFragment x = ast.newVariableDeclarationFragment(); x.setName(asSimpleName(kids[0])); x.setExtraDimensions(asInt(kids[1])); if (isNone(kids[2])) x.setInitializer(null); else x.setInitializer(asExpression(kids[2])); return wrap(x); } case VARIABLE_DECLARATION_STATEMENT: { if (!isModifierList(kids[0]) || !isType(kids[1]) || !isNonEmptyVariableDeclarationFragmentList(kids[2])) return null; List y = asFragmentList(kids[2]); VariableDeclarationStatement x = ast .newVariableDeclarationStatement((VariableDeclarationFragment) y.remove(0)); x.modifiers().addAll(asModifierList(kids[0])); x.setType(asType(kids[1])); x.fragments().addAll(y); return wrap(x); } case WHILE_STATEMENT: { if (!isExpression(kids[0]) || !isStatement(kids[1])) return null; WhileStatement x = ast.newWhileStatement(); x.setExpression(asExpression(kids[0])); x.setBody(asStatement(kids[1])); return wrap(x); } case WILDCARD_TYPE: { if (!isType(kids[0]) && !isNone(kids[0])) return null; WildcardType x = ast.newWildcardType(); if (isNone(kids[0])) x.setBound(null); else x.setBound(asType(kids[0])); return wrap(x); } default: return null; } }
From source file:org.whole.lang.java.util.JDTTransformerVisitor.java
License:Open Source License
public boolean visit(AnnotationTypeDeclaration node) { //FIXME workaround for type nesting org.whole.lang.java.model.Type type = this.type; org.whole.lang.java.model.Name name = this.name; org.whole.lang.java.model.TypeParameter typeParameter = this.typeParameter; org.whole.lang.java.model.Parameters params = this.params; org.whole.lang.java.model.Types thrownExceptions = this.thrownExceptions; org.whole.lang.java.model.SingleVariableDeclaration varDecl = this.varDecl; org.whole.lang.java.model.Block block = this.block; org.whole.lang.java.model.Statement stm = this.stm; org.whole.lang.java.model.Expression exp = this.exp; org.whole.lang.java.model.VariableDeclarationFragment varFrag = this.varFrag; org.whole.lang.java.model.CatchClauses catchClauses = this.catchClauses; env().wEnterScope();/*from w ww. j a v a 2 s .co m*/ org.whole.lang.java.model.AnnotationTypeDeclaration annotationTypeDeclaration; appendBodyDeclaration( annotationTypeDeclaration = lf.create(JavaEntityDescriptorEnum.AnnotationTypeDeclaration)); if (acceptChild(node.getJavadoc())) annotationTypeDeclaration.setJavadoc(this.javadoc); List<?> modifiers = node.modifiers(); if (!modifiers.isEmpty()) { annotationTypeDeclaration.setModifiers(lf.create(JavaEntityDescriptorEnum.ExtendedModifiers)); setExtendedModifiers(annotationTypeDeclaration.getModifiers(), modifiers); } if (acceptChild(node.getName())) annotationTypeDeclaration.setName((org.whole.lang.java.model.SimpleName) this.name); org.whole.lang.java.model.BodyDeclarations bodyDecl = lf.createBodyDeclarations(); annotationTypeDeclaration.setBodyDeclarations(bodyDecl); env().wDef("typeDeclarationsContainer", bodyDecl); acceptChildren(node.bodyDeclarations()); env().wExitScope(); //FIXME workaround for type nesting this.type = type; this.name = name; this.typeParameter = typeParameter; this.params = params; this.thrownExceptions = thrownExceptions; this.varDecl = varDecl; this.block = block; this.stm = stm; this.exp = exp; this.varFrag = varFrag; this.catchClauses = catchClauses; return false; }