List of usage examples for org.aspectj.org.eclipse.jdt.core.dom PerCflow getBody
public PointcutDesignator getBody()
From source file:org.eclipse.ajdt.core.tests.dom.rewrite.ASTRewritingPointcutDeclTest.java
License:Open Source License
public void testPercflowPointcutRename() throws Exception { IProject project = createPredefinedProject("AST"); //$NON-NLS-1$ Map compilerOptions = JavaCore.create(project).getOptions(true); // add node, change ASTVisitor and ASTMatcher // update ASTConverter and ASTRewriteAnalyzer Document doc = new Document("aspect A percflow(a()) {\n" //$NON-NLS-1$ + " public pointcut a();\n" //$NON-NLS-1$ + " public pointcut b();\n" + "}\n"); //$NON-NLS-1$ //$NON-NLS-2$ ASTParser parser = ASTParser.newParser(AST.JLS2); // ajh02: need to // use 2 for//from w w w . j a v a2 s . com // returnType - in 3 // it has // "returnType2" parser.setSource(doc.get().toCharArray()); parser.setCompilerOptions(compilerOptions); CompilationUnit astRoot = (CompilationUnit) parser.createAST(null); AjASTRewrite rewrite = AjASTRewrite.create(astRoot.getAST()); AST ast = astRoot.getAST(); AspectDeclaration type = (AspectDeclaration) findAbstractTypeDeclaration(astRoot, "A"); //$NON-NLS-1$ { // rename percflow pointcut expression PerCflow perCflow = (PerCflow) type.getPerClause(); ReferencePointcut referencePointcut = (ReferencePointcut) perCflow.getBody(); SimpleName name = referencePointcut.getName(); SimpleName newName = ast.newSimpleName("b"); //$NON-NLS-1$ rewrite.replace(name, newName, null); } String expected = "aspect A percflow(b()) {\n" //$NON-NLS-1$ + " public pointcut a();\n" //$NON-NLS-1$ + " public pointcut b();\n" + "}\n"; //$NON-NLS-1$ //$NON-NLS-2$ check(rewrite, doc, expected, compilerOptions); }