List of usage examples for org.aspectj.org.eclipse.jdt.core.dom OrPointcut getLeft
public PointcutDesignator getLeft()
From source file:ajdtplugin.AjNaiveASTFlattener.java
License:Open Source License
public boolean visit(OrPointcut node) { node.getLeft().accept(this); this.buffer.append(" || "); node.getRight().accept(this); return false; }
From source file:org.eclipse.ajdt.core.tests.dom.rewrite.ASTRewritingPointcutDeclTest.java
License:Open Source License
public void testOrPointcutRename() 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(): a() || b();\n" + "}\n"); //$NON-NLS-1$ //$NON-NLS-2$ ASTParser parser = ASTParser.newParser(AST.JLS2); // ajh02: need to // use 2 for// www .j a v a2s .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 the left one in the || PointcutDeclaration pointcutDecl = findPointcutDeclaration(type, "c"); //$NON-NLS-1$ OrPointcut orPointcut = (OrPointcut) pointcutDecl.getDesignator(); ReferencePointcut referencePointcut = (ReferencePointcut) orPointcut.getLeft(); 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(): b() || b();\n" + "}\n"; //$NON-NLS-1$ //$NON-NLS-2$ check(rewrite, doc, expected, compilerOptions); }