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; }