List of usage examples for org.eclipse.jdt.core.dom AST newMarkerAnnotation
public MarkerAnnotation newMarkerAnnotation()
From source file:com.crispico.flower.mp.codesync.code.java.adapter.JavaAbstractAstNodeModelAdapter.java
License:Open Source License
@Override public Object createChildOnContainmentFeature(Object element, Object feature, Object correspondingChild) { if (AstCacheCodePackage.eINSTANCE.getModifiableElement_Modifiers().equals(feature)) { if (!(element instanceof BodyDeclaration || element instanceof SingleVariableDeclaration)) { return null; } else {//from www . jav a 2s.c o m IExtendedModifier extendedModifier = null; if (correspondingChild instanceof com.crispico.flower.mp.model.astcache.code.Modifier) { ASTNode parent = (ASTNode) element; AST ast = parent.getAST(); com.crispico.flower.mp.model.astcache.code.Modifier modifier = (com.crispico.flower.mp.model.astcache.code.Modifier) correspondingChild; extendedModifier = ast.newModifier(Modifier.ModifierKeyword.fromFlagValue(modifier.getType())); if (parent instanceof BodyDeclaration) { ((BodyDeclaration) parent).modifiers().add(extendedModifier); } else { ((SingleVariableDeclaration) parent).modifiers().add(extendedModifier); } } if (correspondingChild instanceof com.crispico.flower.mp.model.astcache.code.Annotation) { ASTNode parent = (ASTNode) element; AST ast = parent.getAST(); com.crispico.flower.mp.model.astcache.code.Annotation annotation = (com.crispico.flower.mp.model.astcache.code.Annotation) correspondingChild; if (annotation.getValues().size() == 0) { MarkerAnnotation markerAnnotation = ast.newMarkerAnnotation(); extendedModifier = markerAnnotation; } if (annotation.getValues().size() == 1) { SingleMemberAnnotation singleMemberAnnotation = ast.newSingleMemberAnnotation(); extendedModifier = singleMemberAnnotation; } else { NormalAnnotation normalAnnotation = ast.newNormalAnnotation(); extendedModifier = normalAnnotation; } if (parent instanceof BodyDeclaration) { ((BodyDeclaration) parent).modifiers().add(extendedModifier); } else { ((SingleVariableDeclaration) parent).modifiers().add(extendedModifier); } } return extendedModifier; } } return null; }
From source file:com.crispico.flower.mp.metamodel.codesyncjava.algorithm.JavaSyncUtils.java
License:Open Source License
/** * Creates a new appropriate {@link Annotation java Annotation} from the * given {@link EAnnotation modelEAnnotation}. The returned * {@link Annotation} can be a {@link MarkerAnnotation}, a * {@link SingleMemberAnnotation} or a {@link NormalAnnotation} according to * the <code>modelEAnnotation</code> features. * //from ww w .j ava 2 s . c o m * @param ast * the parent {@link AST} used to create the new * {@link Annotation} * @param modelEAnnotation * the model element {@link EAnnotation} * @return a new unparented {@link Annotation} * * @author Luiza */ @SuppressWarnings("unchecked") public static Annotation createNewJavaAnnotationFromModelEAnnotation(AST ast, EAnnotation modelEAnnotation) { EMap<String, String> detailsMap = modelEAnnotation.getDetails(); Annotation newAnnotation = null; if (detailsMap.size() == 0) { newAnnotation = ast.newMarkerAnnotation(); } else if (detailsMap.size() == 1 && detailsMap.get("") != null) { String value = detailsMap.get(""); newAnnotation = ast.newSingleMemberAnnotation(); ((SingleMemberAnnotation) newAnnotation).setValue(makeExpression(ast, value)); } else { newAnnotation = ast.newNormalAnnotation(); for (Entry<String, String> mapEntry : detailsMap) { MemberValuePair mvp = ast.newMemberValuePair(); mvp.setName(ast.newSimpleName(mapEntry.getKey())); mvp.setValue(makeExpression(ast, mapEntry.getValue())); ((NormalAnnotation) newAnnotation).values().add(mvp); } } newAnnotation.setTypeName(ast.newName(modelEAnnotation.getSource())); return newAnnotation; }
From source file:com.gowan.plugin.handlers.JUnit3Handler.java
License:Open Source License
private void transformMethod(AST ast, ASTRewrite rewrite, MethodDeclaration original, String annotationName) { ListRewrite setupRw = rewrite.getListRewrite(original, MethodDeclaration.MODIFIERS2_PROPERTY); MarkerAnnotation annotation = ast.newMarkerAnnotation(); annotation.setTypeName(ast.newSimpleName(annotationName)); setupRw.insertFirst(annotation, null); List<IExtendedModifier> modifiers = original.modifiers(); Annotation override = null;//from w w w . ja v a 2s .co m for (IExtendedModifier iExtendedModifier : modifiers) { if (iExtendedModifier.isAnnotation()) { Annotation localAnnotation = (Annotation) iExtendedModifier; String fullName = localAnnotation.getTypeName().getFullyQualifiedName(); if ("java.lang.Override".equals(fullName) || "Override".equals(fullName)) { override = localAnnotation; break; } } } try { setupRw.remove(override, null); } catch (IllegalArgumentException e) { } }
From source file:com.halware.nakedide.eclipse.ext.annot.ast.AbstractAnnotationEvaluatorOrModifier.java
License:Open Source License
private void updateSingleMemberAnnotation(ICompilationUnit compilationUnit, BodyDeclaration declaration, Object value) throws JavaModelException, MalformedTreeException, BadLocationException { SingleMemberAnnotation singleMemberAnnotation = annotation(declaration, SingleMemberAnnotation.class); if (singleMemberAnnotation != null) { AST ast = singleMemberAnnotation.getAST(); if (value != QualifiedNameValue.DEFAULT_VALUE) { Expression replacement = value != null ? AstUtils.createExpression(ast, value) : null; AstUtils.rewriteReplace(compilationUnit, singleMemberAnnotation.getValue(), replacement); return; } else {//from www .j a v a 2s . co m MarkerAnnotation replacementAnnotation = ast.newMarkerAnnotation(); replacementAnnotation .setTypeName(ast.newName(singleMemberAnnotation.getTypeName().getFullyQualifiedName())); AstUtils.rewriteReplace(compilationUnit, singleMemberAnnotation, replacementAnnotation); return; } } MarkerAnnotation markerAnnotation = annotation(declaration, MarkerAnnotation.class); if (markerAnnotation != null) { AST ast = markerAnnotation.getAST(); if (value != QualifiedNameValue.DEFAULT_VALUE) { SingleMemberAnnotation replacementAnnotation = ast.newSingleMemberAnnotation(); replacementAnnotation .setTypeName(ast.newName(markerAnnotation.getTypeName().getFullyQualifiedName())); Expression memberValueExpression = value != null ? AstUtils.createExpression(ast, value) : null; replacementAnnotation.setValue(memberValueExpression); AstUtils.rewriteReplace(compilationUnit, markerAnnotation, replacementAnnotation); } else { // nothing to do } } }
From source file:com.halware.nakedide.eclipse.ext.annot.utils.AstUtils.java
License:Open Source License
public static MarkerAnnotation createMarkerAnnotation(AST ast, String annotationName, boolean forceFullyQualified) { MarkerAnnotation newMarkerAnnotation = ast.newMarkerAnnotation(); String name = forceFullyQualified ? annotationName : unqualified(annotationName); newMarkerAnnotation.setTypeName(ast.newName(name)); return newMarkerAnnotation; }
From source file:com.halware.nakedide.eclipse.ext.annot.utils.AstUtils.java
License:Open Source License
public static Annotation createSingleMemberAnnotation(AST ast, String annotationName, Object value, boolean forceFullyQualified) { String name = forceFullyQualified ? annotationName : unqualified(annotationName); if (value != QualifiedNameValue.DEFAULT_VALUE) { SingleMemberAnnotation newSingleMemberAnnotation = ast.newSingleMemberAnnotation(); newSingleMemberAnnotation.setTypeName(ast.newName(name)); newSingleMemberAnnotation.setValue(AstUtils.createExpression(ast, value)); return newSingleMemberAnnotation; } else {// w ww . j a va 2 s .c o m MarkerAnnotation newMarkerAnnotation = ast.newMarkerAnnotation(); ; newMarkerAnnotation.setTypeName(ast.newName(name)); return newMarkerAnnotation; } }
From source file:com.halware.nakedide.eclipse.ext.annot.utils.dali.ASTTools.java
License:Open Source License
/** * Convenience method on AST to create a new MarkerAnnotation with the given annotation name. * If annotationName is "Table" this will result in "@Table" in the java source when it is added * to a BodyDeclaration. See addAnnotation(BodyDeclaration, Annotation) *///from www. ja va 2 s.c om public static MarkerAnnotation newMarkerAnnotation(AST ast, String annotationName) { MarkerAnnotation annotation = ast.newMarkerAnnotation(); annotation.setTypeName(ast.newSimpleName(annotationName)); return annotation; }
From source file:com.idega.eclipse.ejbwizards.IBOEntityCreator.java
License:Open Source License
private void createHomeImplementation(IProgressMonitor monitor, ICompilationUnit iUnit, String typePackage, String name) throws JavaModelException, MalformedTreeException, BadLocationException { iUnit.getBuffer().setContents(""); String source = iUnit.getBuffer().getContents(); Document document = new Document(source); ASTParser parser = ASTParser.newParser(AST.JLS3); parser.setSource(iUnit);//ww w .j a v a 2 s.com CompilationUnit unit = (CompilationUnit) parser.createAST(monitor); unit.recordModifications(); AST ast = unit.getAST(); // Package statement PackageDeclaration packageDeclaration = ast.newPackageDeclaration(); unit.setPackage(packageDeclaration); packageDeclaration.setName(ast.newName(typePackage)); // class declaration TypeDeclaration classType = getTypeDeclaration(ast, name + "HomeImpl", false, "IBOHomeImpl", null, getHomeImplImports()); classType.superInterfaceTypes().add(ast.newSimpleType(ast.newSimpleName(name + "Home"))); addHomeImplImport("com.idega.business.IBOHomeImpl"); unit.types().add(classType); // create() method MethodDeclaration methodConstructor = ast.newMethodDeclaration(); methodConstructor.setConstructor(false); if (this.isJDK1_5) { MarkerAnnotation annotation = ast.newMarkerAnnotation(); annotation.setTypeName(ast.newSimpleName("Override")); methodConstructor.modifiers().add(annotation); } methodConstructor.modifiers().addAll(ast.newModifiers(Modifier.PUBLIC)); if (this.isJDK1_5) { ParameterizedType returnType = ast.newParameterizedType(ast.newSimpleType(ast.newSimpleName("Class"))); returnType.typeArguments().add(ast.newSimpleType(ast.newSimpleName(name))); methodConstructor.setReturnType2(returnType); } else { methodConstructor.setReturnType2(ast.newSimpleType(ast.newSimpleName("Class"))); } methodConstructor.setName(ast.newSimpleName("getBeanInterfaceClass")); classType.bodyDeclarations().add(methodConstructor); Block constructorBlock = ast.newBlock(); methodConstructor.setBody(constructorBlock); TypeLiteral typeLiteral = ast.newTypeLiteral(); typeLiteral.setType(ast.newSimpleType(ast.newSimpleName(name))); ReturnStatement returnStatement = ast.newReturnStatement(); returnStatement.setExpression(typeLiteral); constructorBlock.statements().add(returnStatement); // create() method methodConstructor = ast.newMethodDeclaration(); methodConstructor.setConstructor(false); methodConstructor.modifiers().addAll(ast.newModifiers(Modifier.PUBLIC)); methodConstructor.setReturnType2(ast.newSimpleType(ast.newSimpleName(name))); methodConstructor.setName(ast.newSimpleName("create")); methodConstructor.thrownExceptions().add(ast.newName("CreateException")); addHomeImplImport("javax.ejb.CreateException"); classType.bodyDeclarations().add(methodConstructor); constructorBlock = ast.newBlock(); methodConstructor.setBody(constructorBlock); SuperMethodInvocation superMethodInvocation = ast.newSuperMethodInvocation(); superMethodInvocation.setName(ast.newSimpleName("createIBO")); CastExpression ce = ast.newCastExpression(); ce.setType(ast.newSimpleType(ast.newSimpleName(name))); ce.setExpression(superMethodInvocation); returnStatement = ast.newReturnStatement(); returnStatement.setExpression(ce); constructorBlock.statements().add(returnStatement); writeImports(ast, unit, getHomeImplImports()); commitChanges(iUnit, unit, document); }
From source file:com.idega.eclipse.ejbwizards.IDOEntityCreator.java
License:Open Source License
private void createHomeImplementation(IProgressMonitor monitor, ICompilationUnit iUnit, String typePackage, String name) throws JavaModelException, MalformedTreeException, BadLocationException { iUnit.getBuffer().setContents(""); String source = iUnit.getBuffer().getContents(); Document document = new Document(source); ASTParser parser = ASTParser.newParser(AST.JLS3); parser.setSource(iUnit);/*w w w . j a va 2s.co m*/ CompilationUnit unit = (CompilationUnit) parser.createAST(monitor); unit.recordModifications(); AST ast = unit.getAST(); // Package statement unit.setPackage(getPackageDeclaration(ast, typePackage)); // class declaration TypeDeclaration classType = getTypeDeclaration(ast, name + "HomeImpl", false, "IDOFactory", null, getHomeImplImports()); classType.superInterfaceTypes().add(ast.newSimpleType(ast.newSimpleName(name + "Home"))); addHomeImplImport("com.idega.data.IDOFactory"); unit.types().add(classType); // create() method MethodDeclaration methodConstructor = ast.newMethodDeclaration(); methodConstructor.setConstructor(false); if (this.isJDK1_5) { MarkerAnnotation annotation = ast.newMarkerAnnotation(); annotation.setTypeName(ast.newSimpleName("Override")); methodConstructor.modifiers().add(annotation); } methodConstructor.modifiers().addAll(ast.newModifiers(Modifier.PUBLIC)); if (this.isJDK1_5) { ParameterizedType returnType = ast.newParameterizedType(ast.newSimpleType(ast.newSimpleName("Class"))); returnType.typeArguments().add(ast.newSimpleType(ast.newSimpleName(name + "Home"))); methodConstructor.setReturnType2(returnType); } else { methodConstructor.setReturnType2(ast.newSimpleType(ast.newSimpleName("Class"))); } methodConstructor.setName(ast.newSimpleName("getEntityInterfaceClass")); classType.bodyDeclarations().add(methodConstructor); Block constructorBlock = ast.newBlock(); methodConstructor.setBody(constructorBlock); TypeLiteral typeLiteral = ast.newTypeLiteral(); typeLiteral.setType(ast.newSimpleType(ast.newSimpleName(name))); ReturnStatement returnStatement = ast.newReturnStatement(); returnStatement.setExpression(typeLiteral); constructorBlock.statements().add(returnStatement); // create() method methodConstructor = ast.newMethodDeclaration(); methodConstructor.setConstructor(false); methodConstructor.modifiers().addAll(ast.newModifiers(Modifier.PUBLIC)); methodConstructor.setReturnType2(ast.newSimpleType(ast.newSimpleName(name))); methodConstructor.setName(ast.newSimpleName("create")); methodConstructor.thrownExceptions().add(ast.newName("CreateException")); addHomeImplImport("javax.ejb.CreateException"); classType.bodyDeclarations().add(methodConstructor); constructorBlock = ast.newBlock(); methodConstructor.setBody(constructorBlock); SuperMethodInvocation superMethodInvocation = ast.newSuperMethodInvocation(); superMethodInvocation.setName(ast.newSimpleName("createIDO")); CastExpression ce = ast.newCastExpression(); ce.setType(ast.newSimpleType(ast.newSimpleName(name))); ce.setExpression(superMethodInvocation); returnStatement = ast.newReturnStatement(); returnStatement.setExpression(ce); constructorBlock.statements().add(returnStatement); // findByPrimarKey(Object) method methodConstructor = ast.newMethodDeclaration(); methodConstructor.setConstructor(false); methodConstructor.modifiers().addAll(ast.newModifiers(Modifier.PUBLIC)); methodConstructor.setReturnType2(ast.newSimpleType(ast.newSimpleName(name))); methodConstructor.setName(ast.newSimpleName("findByPrimaryKey")); methodConstructor.thrownExceptions().add(ast.newName("FinderException")); addHomeImplImport("javax.ejb.FinderException"); classType.bodyDeclarations().add(methodConstructor); SingleVariableDeclaration variableDeclaration = ast.newSingleVariableDeclaration(); variableDeclaration.modifiers().addAll(ast.newModifiers(Modifier.NONE)); variableDeclaration.setType(ast.newSimpleType(ast.newSimpleName("Object"))); variableDeclaration.setName(ast.newSimpleName("pk")); methodConstructor.parameters().add(variableDeclaration); constructorBlock = ast.newBlock(); methodConstructor.setBody(constructorBlock); superMethodInvocation = ast.newSuperMethodInvocation(); superMethodInvocation.setName(ast.newSimpleName("findByPrimaryKeyIDO")); superMethodInvocation.arguments().add(ast.newSimpleName("pk")); ce = ast.newCastExpression(); ce.setType(ast.newSimpleType(ast.newSimpleName(name))); ce.setExpression(superMethodInvocation); returnStatement = ast.newReturnStatement(); returnStatement.setExpression(ce); constructorBlock.statements().add(returnStatement); if (this.isLegacyEntity) { // createLegacy() method methodConstructor = ast.newMethodDeclaration(); methodConstructor.setConstructor(false); methodConstructor.modifiers().addAll(ast.newModifiers(Modifier.PUBLIC)); methodConstructor.setReturnType2(ast.newSimpleType(ast.newSimpleName(name))); methodConstructor.setName(ast.newSimpleName("createLegacy")); classType.bodyDeclarations().add(methodConstructor); constructorBlock = ast.newBlock(); methodConstructor.setBody(constructorBlock); TryStatement tryStatement = ast.newTryStatement(); constructorBlock.statements().add(tryStatement); Block tryBlock = ast.newBlock(); tryStatement.setBody(tryBlock); MethodInvocation mi = ast.newMethodInvocation(); mi.setName(ast.newSimpleName("create")); returnStatement = ast.newReturnStatement(); returnStatement.setExpression(mi); tryBlock.statements().add(returnStatement); CatchClause catchClause = ast.newCatchClause(); tryStatement.catchClauses().add(catchClause); variableDeclaration = ast.newSingleVariableDeclaration(); variableDeclaration.modifiers().addAll(ast.newModifiers(Modifier.NONE)); variableDeclaration.setType(ast.newSimpleType(ast.newSimpleName(("CreateException")))); variableDeclaration.setName(ast.newSimpleName("ce")); catchClause.setException(variableDeclaration); Block catchBlock = ast.newBlock(); catchClause.setBody(catchBlock); ClassInstanceCreation cc = ast.newClassInstanceCreation(); cc.setType(ast.newSimpleType(ast.newSimpleName("RuntimeException"))); mi = ast.newMethodInvocation(); mi.setExpression(ast.newSimpleName("ce")); mi.setName(ast.newSimpleName("getMessage")); cc.arguments().add(mi); ThrowStatement throwStatement = ast.newThrowStatement(); throwStatement.setExpression(cc); catchBlock.statements().add(throwStatement); // findByPrimarKey(int) method methodConstructor = ast.newMethodDeclaration(); methodConstructor.setConstructor(false); methodConstructor.modifiers().addAll(ast.newModifiers(Modifier.PUBLIC)); methodConstructor.setReturnType2(ast.newSimpleType(ast.newSimpleName(name))); methodConstructor.setName(ast.newSimpleName("findByPrimaryKey")); methodConstructor.thrownExceptions().add(ast.newName("FinderException")); classType.bodyDeclarations().add(methodConstructor); variableDeclaration = ast.newSingleVariableDeclaration(); variableDeclaration.modifiers().addAll(ast.newModifiers(Modifier.NONE)); variableDeclaration.setType(ast.newPrimitiveType(PrimitiveType.INT)); variableDeclaration.setName(ast.newSimpleName("id")); methodConstructor.parameters().add(variableDeclaration); constructorBlock = ast.newBlock(); methodConstructor.setBody(constructorBlock); superMethodInvocation = ast.newSuperMethodInvocation(); superMethodInvocation.setName(ast.newSimpleName("findByPrimaryKeyIDO")); superMethodInvocation.arguments().add(ast.newSimpleName("id")); ce = ast.newCastExpression(); ce.setType(ast.newSimpleType(ast.newSimpleName(name))); ce.setExpression(superMethodInvocation); returnStatement = ast.newReturnStatement(); returnStatement.setExpression(ce); constructorBlock.statements().add(returnStatement); // findByPrimarKeyLegacy(int) method methodConstructor = ast.newMethodDeclaration(); methodConstructor.setConstructor(false); methodConstructor.modifiers().addAll(ast.newModifiers(Modifier.PUBLIC)); methodConstructor.setReturnType2(ast.newSimpleType(ast.newSimpleName(name))); methodConstructor.setName(ast.newSimpleName("findByPrimaryKeyLegacy")); methodConstructor.thrownExceptions().add(ast.newName("SQLException")); addHomeImplImport("java.sql.SQLException"); classType.bodyDeclarations().add(methodConstructor); variableDeclaration = ast.newSingleVariableDeclaration(); variableDeclaration.modifiers().addAll(ast.newModifiers(Modifier.NONE)); variableDeclaration.setType(ast.newPrimitiveType(PrimitiveType.INT)); variableDeclaration.setName(ast.newSimpleName("id")); methodConstructor.parameters().add(variableDeclaration); constructorBlock = ast.newBlock(); methodConstructor.setBody(constructorBlock); tryStatement = ast.newTryStatement(); constructorBlock.statements().add(tryStatement); tryBlock = ast.newBlock(); tryStatement.setBody(tryBlock); mi = ast.newMethodInvocation(); mi.setName(ast.newSimpleName("findByPrimaryKey")); mi.arguments().add(ast.newSimpleName("id")); returnStatement = ast.newReturnStatement(); returnStatement.setExpression(mi); tryBlock.statements().add(returnStatement); catchClause = ast.newCatchClause(); tryStatement.catchClauses().add(catchClause); variableDeclaration = ast.newSingleVariableDeclaration(); variableDeclaration.modifiers().addAll(ast.newModifiers(Modifier.NONE)); variableDeclaration.setType(ast.newSimpleType(ast.newSimpleName(("FinderException")))); variableDeclaration.setName(ast.newSimpleName("fe")); catchClause.setException(variableDeclaration); catchBlock = ast.newBlock(); catchClause.setBody(catchBlock); cc = ast.newClassInstanceCreation(); cc.setType(ast.newSimpleType(ast.newSimpleName("SQLException"))); mi = ast.newMethodInvocation(); mi.setExpression(ast.newSimpleName("fe")); mi.setName(ast.newSimpleName("getMessage")); cc.arguments().add(mi); throwStatement = ast.newThrowStatement(); throwStatement.setExpression(cc); catchBlock.statements().add(throwStatement); } MethodFilter[] validFilter = { new MethodFilter(WizardConstants.EJB_CREATE_START, MethodFilter.TYPE_PREFIX), new MethodFilter(WizardConstants.EJB_HOME_START, MethodFilter.TYPE_PREFIX), new MethodFilter(WizardConstants.EJB_FIND_START, MethodFilter.TYPE_PREFIX) }; List methods = filterMethods(getType().getMethods(), validFilter, null); for (Iterator iter = methods.iterator(); iter.hasNext();) { IMethod method = (IMethod) iter.next(); String fullMethodName = method.getElementName(); String methodName = cutAwayEJBSuffix(fullMethodName); String[] parameterNames = method.getParameterNames(); String returnType = method.getReturnType(); if (fullMethodName.startsWith(WizardConstants.EJB_FIND_START) || fullMethodName.startsWith(WizardConstants.EJB_CREATE_START)) { if (!(Signature.getSimpleName(Signature.toString(method.getReturnType())) .indexOf(Signature.getSimpleName("java.util.Collection")) != -1) && !(Signature.getSimpleName(Signature.toString(method.getReturnType())) .indexOf(Signature.getSimpleName("java.util.Set")) != -1)) { returnType = name; } } if (!returnType.equals(name)) { returnType = getReturnType(returnType); } methodConstructor = getMethodDeclaration(ast, method, methodName, returnType, getHomeImplImports(), false); classType.bodyDeclarations().add(methodConstructor); constructorBlock = ast.newBlock(); methodConstructor.setBody(constructorBlock); constructorBlock.statements().add(getIDOCheckOutStatement(ast, getHomeImplImports())); if (fullMethodName.startsWith(WizardConstants.EJB_FIND_START)) { if (Signature.getSimpleName(Signature.toString(method.getReturnType())) .indexOf(Signature.getSimpleName("java.util.Collection")) != -1) { constructorBlock.statements().add( getDataCollectingStatement(ast, returnType, "ids", fullMethodName, parameterNames)); constructorBlock.statements().add(getIDOCheckInStatement(ast)); constructorBlock.statements() .add(getObjectReturnStatement(ast, "getEntityCollectionForPrimaryKeys", "ids")); } else if (Signature.getSimpleName(Signature.toString(method.getReturnType())) .indexOf(Signature.getSimpleName("java.util.Set")) != -1) { constructorBlock.statements().add( getDataCollectingStatement(ast, returnType, "ids", fullMethodName, parameterNames)); constructorBlock.statements().add(getIDOCheckInStatement(ast)); constructorBlock.statements() .add(getObjectReturnStatement(ast, "getEntitySetForPrimaryKeys", "ids")); } else { constructorBlock.statements() .add(getDataCollectingStatement(ast, "Object", "pk", fullMethodName, parameterNames)); constructorBlock.statements().add(getIDOCheckInStatement(ast)); constructorBlock.statements().add(getObjectReturnStatement(ast, "findByPrimaryKey", "pk")); } } else if (fullMethodName.startsWith(WizardConstants.EJB_HOME_START)) { constructorBlock.statements().add( getDataCollectingStatement(ast, returnType, "theReturn", fullMethodName, parameterNames)); constructorBlock.statements().add(getIDOCheckInStatement(ast)); constructorBlock.statements().add(getPrimitiveReturnStatement(ast, "theReturn")); } else if (fullMethodName.startsWith(WizardConstants.EJB_CREATE_START)) { constructorBlock.statements() .add(getDataCollectingStatement(ast, "Object", "pk", fullMethodName, parameterNames)); ce = ast.newCastExpression(); ce.setType(ast.newSimpleType(ast.newSimpleName(getType().getTypeQualifiedName()))); ce.setExpression(ast.newSimpleName("entity")); ParenthesizedExpression pe = ast.newParenthesizedExpression(); pe.setExpression(ce); MethodInvocation mi = ast.newMethodInvocation(); mi.setExpression(pe); mi.setName(ast.newSimpleName("ejbPostCreate")); constructorBlock.statements().add(ast.newExpressionStatement(mi)); constructorBlock.statements().add(getIDOCheckInStatement(ast)); TryStatement tryStatement = ast.newTryStatement(); constructorBlock.statements().add(tryStatement); Block tryBlock = ast.newBlock(); tryStatement.setBody(tryBlock); mi = ast.newMethodInvocation(); mi.setName(ast.newSimpleName("findByPrimaryKey")); mi.arguments().add(ast.newSimpleName("pk")); returnStatement = ast.newReturnStatement(); returnStatement.setExpression(mi); tryBlock.statements().add(returnStatement); CatchClause catchClause = ast.newCatchClause(); tryStatement.catchClauses().add(catchClause); variableDeclaration = ast.newSingleVariableDeclaration(); variableDeclaration.modifiers().addAll(ast.newModifiers(Modifier.NONE)); variableDeclaration.setType(ast.newSimpleType(ast.newSimpleName(("FinderException")))); variableDeclaration.setName(ast.newSimpleName("fe")); catchClause.setException(variableDeclaration); Block catchBlock = ast.newBlock(); catchClause.setBody(catchBlock); ClassInstanceCreation cc = ast.newClassInstanceCreation(); cc.setType(ast.newSimpleType(ast.newSimpleName("IDOCreateException"))); addHomeImplImport("com.idega.data.IDOCreateException"); cc.arguments().add(ast.newSimpleName(("fe"))); ThrowStatement throwStatement = ast.newThrowStatement(); throwStatement.setExpression(cc); catchBlock.statements().add(throwStatement); catchClause = ast.newCatchClause(); tryStatement.catchClauses().add(catchClause); variableDeclaration = ast.newSingleVariableDeclaration(); variableDeclaration.modifiers().addAll(ast.newModifiers(Modifier.NONE)); variableDeclaration.setType(ast.newSimpleType(ast.newSimpleName(("Exception")))); variableDeclaration.setName(ast.newSimpleName("e")); catchClause.setException(variableDeclaration); catchBlock = ast.newBlock(); catchClause.setBody(catchBlock); cc = ast.newClassInstanceCreation(); cc.setType(ast.newSimpleType(ast.newSimpleName("IDOCreateException"))); cc.arguments().add(ast.newSimpleName(("e"))); throwStatement = ast.newThrowStatement(); throwStatement.setExpression(cc); catchBlock.statements().add(throwStatement); } } writeImports(ast, unit, getHomeImplImports()); commitChanges(iUnit, unit, document); }
From source file:de.dentrassi.varlink.generator.util.JdtHelper.java
License:Open Source License
public static void addSimpleAnnotation(final BodyDeclaration decl, final String name) { final AST ast = decl.getAST(); final MarkerAnnotation ann = ast.newMarkerAnnotation(); ann.setTypeName(ast.newName(name));/*from w ww. j ava 2 s.c o m*/ decl.modifiers().add(ann); }