1 package ch.ethz.prose.jvmai.jikesrvm.advice_weaver; 2 3 import ch.ethz.jvmai.JVMAspectInterface; 4 import ch.ethz.prose.crosscut.MethodRedefineCut; 5 import ch.ethz.prose.engine.*; 6 7 12 public class AdviceJoinPointManager extends JoinPointManager { 13 14 protected RedefineWeaver weaver = new RedefineWeaver(); 15 16 public AdviceJoinPointManager(boolean isConnected, JVMAspectInterface ai, boolean enableRevMap) { 17 super(isConnected, ai, enableRevMap); 18 } 19 20 27 public void registerListener(JoinPointListener jpl, JoinPointRequest jpr) { 28 if (jpr instanceof MethodRedefineRequest) { 29 MethodRedefineCut cut = (MethodRedefineCut) jpl; 30 MethodRedefineRequest request = (MethodRedefineRequest) jpr; 31 weaver.weaveMethodRedefineCut(cut, request); 32 } else { 33 super.registerListener(jpl, jpr); 34 } 35 } 36 37 44 public void unregisterListener(JoinPointListener jpl) { 45 if (jpl instanceof MethodRedefineCut) { 46 MethodRedefineCut cut = (MethodRedefineCut) jpl; 47 weaver.unweaveMethodRedefineCut(cut); 48 } else { 49 super.unregisterListener(jpl); 50 } 51 } 52 53 } 54 | Popular Tags |