List of usage examples for org.aspectj.org.eclipse.jdt.core.dom CflowPointcut getBody
public PointcutDesignator getBody()
From source file:ajdtplugin.AjNaiveASTFlattener.java
License:Open Source License
public boolean visit(CflowPointcut node) { Pointcut pnt = points.get(points.size() - 1); node.getBody().accept(this); if (node.getBody() instanceof DefaultPointcut) { pnt.setCflow("cflow(\"" + ((DefaultPointcut) node.getBody()).getDetail() + "\")"); }//from w ww .j ava2 s . c o m // points.add(points.size()-1, pnt); return false; }
From source file:org.eclipse.ajdt.core.tests.dom.rewrite.ASTRewritingPointcutDeclTest.java
License:Open Source License
public void testCflowPointcutRename() 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 {\n" //$NON-NLS-1$ + " public pointcut a();\n" //$NON-NLS-1$ + " public pointcut b();\n" //$NON-NLS-1$ + " public pointcut c(): cflow(a());\n" + "}\n"); //$NON-NLS-1$ //$NON-NLS-2$ ASTParser parser = ASTParser.newParser(AST.JLS2); // ajh02: need to // use 2 for/*from w ww . ja va2s . co m*/ // 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 cflow pointcutDesignator name PointcutDeclaration pointcutDecl = findPointcutDeclaration(type, "c"); //$NON-NLS-1$ CflowPointcut cflowPointcut = (CflowPointcut) pointcutDecl.getDesignator(); ReferencePointcut referencePointcut = (ReferencePointcut) cflowPointcut.getBody(); SimpleName name = referencePointcut.getName(); SimpleName newName = ast.newSimpleName("b"); //$NON-NLS-1$ rewrite.replace(name, newName, null); } String expected = "aspect A {\n" + " public pointcut a();\n" //$NON-NLS-1$ //$NON-NLS-2$ + " public pointcut b();\n" //$NON-NLS-1$ + " public pointcut c(): cflow(b());\n" + "}\n"; //$NON-NLS-1$ //$NON-NLS-2$ check(rewrite, doc, expected, compilerOptions); }
From source file:org.eclipse.ajdt.core.tests.dom.rewrite.ASTRewritingPointcutDeclTest.java
License:Open Source License
public void testCflowbelowPointcutRename() 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 {\n" //$NON-NLS-1$ + " public pointcut a();\n" //$NON-NLS-1$ + " public pointcut b();\n" //$NON-NLS-1$ + " public pointcut c(): cflowbelow(a());\n" + "}\n"); //$NON-NLS-1$ //$NON-NLS-2$ ASTParser parser = ASTParser.newParser(AST.JLS2); // ajh02: need to // use 2 for/*www. jav a 2s . co m*/ // 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 cflowbelow pointcutDesignator name PointcutDeclaration pointcutDecl = findPointcutDeclaration(type, "c"); //$NON-NLS-1$ CflowPointcut cflowbelowPointcut = (CflowPointcut) pointcutDecl.getDesignator(); ReferencePointcut referencePointcut = (ReferencePointcut) cflowbelowPointcut.getBody(); SimpleName name = referencePointcut.getName(); SimpleName newName = ast.newSimpleName("b"); //$NON-NLS-1$ rewrite.replace(name, newName, null); } String expected = "aspect A {\n" + " public pointcut a();\n" //$NON-NLS-1$ //$NON-NLS-2$ + " public pointcut b();\n" //$NON-NLS-1$ + " public pointcut c(): cflowbelow(b());\n" + "}\n"; //$NON-NLS-1$ //$NON-NLS-2$ check(rewrite, doc, expected, compilerOptions); }