1 24 25 package org.aspectj.compiler.crosscuts.joinpoints; 26 27 import org.aspectj.compiler.base.ast.*; 28 import org.aspectj.compiler.crosscuts.*; 29 30 public abstract class CodeBodyJp extends JoinPoint { 31 private JoinPoint enclosingJoinPoint; 32 33 public CodeBodyJp(JoinPoint enclosingJoinPoint) { 34 super(enclosingJoinPoint.getCompiler()); 35 this.enclosingJoinPoint = enclosingJoinPoint; 36 } 37 38 public Expr makeStaticEnclosingExecutionJoinPointExpr() { 39 if (getEnclosingExecutionJoinPoint() == null) return getAST().makeNull(); 40 41 return getEnclosingExecutionJoinPoint().makeStaticJoinPointVarExpr(); 42 } 43 44 public JoinPoint getEnclosingExecutionJoinPoint() { 45 return enclosingJoinPoint; 46 } 47 48 49 public abstract ASTObject getSourceLocation(); 51 52 public boolean isStaticContext() { return enclosingJoinPoint.isStaticContext(); } 53 54 public abstract String toString(); 55 56 public void makeCorrespondences() { 57 if (plans == null) return; 58 super.makeCorrespondences(); 59 60 Dec enclosingDec = getSourceLocation().getEnclosingCodeDec(); 61 if (!enclosingDec.fromSource() || enclosingDec instanceof InitializerDec) { 62 enclosingDec = enclosingDec.getLexicalType().getTypeDec(); 63 } 64 65 67 ((AspectJCompiler)getCompiler()).getCorrespondences().addPointsTo( 68 enclosingDec, getSourceLocation()); 69 } 70 } 71 | Popular Tags |