| java.lang.Object ch.ethz.prose.jvmai.jikesrvm.advice_weaver.AdviceJVMAI
AdviceJVMAI | public class AdviceJVMAI implements VM_Callbacks.ClassLoadedMonitor,VM_Callbacks.ExceptionThrownMonitor,VM_Callbacks.ExceptionCaughtMonitor,JVMAspectInterface(Code) | | A JVMAspectInterface implementation that is based on advice weaving at
bytecode level.
author: Johann Gyger |
Constructor Summary | |
protected | AdviceJVMAI() Create new instance. |
Method Summary | |
public void | clearConstructorWatch(java.lang.reflect.Constructor c) | public void | clearExceptionCatchWatch(Class c) | public void | clearExceptionThrowWatch(Class c) | public void | clearFieldAccessWatch(Field f) | public void | clearFieldModificationWatch(Field f) | public void | clearMethodEntryWatch(Method m) | public void | clearMethodExitWatch(Method m) | protected void | clearWatch(Object[] tags, int id) Set `tags[id] = null'. | public static AdviceJVMAI | getInstance() Get sole instance (singleton) of this class. | public List | getLoadedClasses() | public void | notifyClassLoaded(VM_Class klass) | final public void | notifyExceptionCaught(Throwable exception, VM_Method catcher) | final public void | notifyExceptionThrown(Throwable exception, VM_Method thrower) | final public static void | onFieldAccess(Object owner, int fieldId, int methodId, Object this0, Object[] args) This callback will be invoked at field access join points. | final public static void | onFieldModification(Object owner, int fieldId, int methodId, Object this0, Object[] args) This callback will be invoked at field modification join points. | final public static void | onMethodEntry(int methodId, Object this0, Object[] args) This callback will be invoked at method entry join points. | final public static void | onMethodExit(int methodId, Object this0, Object[] args) This callback will be invoked at method exit join points. | public void | resumeNotification(Thread thread) | public void | setConstructorWatch(java.lang.reflect.Constructor c, Object aopTag) | public void | setExceptionCatchWatch(Class c, Object aopTag) | public void | setExceptionThrowWatch(Class c, Object aopTag) | public void | setFieldAccessWatch(Field f, Object aopTag) | public void | setFieldModificationWatch(Field f, Object aopTag) | public void | setJoinPointHook(JoinPointHook h) | public void | setMethodEntryWatch(Method m, Object aopTag) | public void | setMethodExitWatch(Method m, Object aopTag) | protected Object[] | setWatch(Object[] tags, Object tag, int id) Set `tags[id]' to `tag'. | public void | startup(String[] packagePrefixes, boolean openWorldAssumption) | public void | suspendNotification(Thread thread) | public void | teardown() |
aopNullTag | protected static Object aopNullTag(Code) | | Dummy-tag used to mark join points registered with aopTag 'null' in the
tag arrays.
|
exceptionCatchTags | protected static Object[] exceptionCatchTags(Code) | | |
exceptionThrowTags | protected static Object[] exceptionThrowTags(Code) | | |
fieldAccessTags | protected static Object[] fieldAccessTags(Code) | | Storage for aopTags registered with join points. An ID of a method or a
field is used as index into these arrays.
|
fieldModificationTags | protected static Object[] fieldModificationTags(Code) | | |
initialized | protected static boolean initialized(Code) | | Is this aspect interface up and running?
|
methodEntryTags | protected static Object[] methodEntryTags(Code) | | |
methodExitTags | protected static Object[] methodExitTags(Code) | | |
suspendedThreads | protected static BitSet suspendedThreads(Code) | | Threads for which the aspect interface is suspended;
|
AdviceJVMAI | protected AdviceJVMAI()(Code) | | Create new instance. Used by singleton pattern.
|
clearExceptionCatchWatch | public void clearExceptionCatchWatch(Class c)(Code) | | |
clearExceptionThrowWatch | public void clearExceptionThrowWatch(Class c)(Code) | | |
clearFieldAccessWatch | public void clearFieldAccessWatch(Field f)(Code) | | |
clearFieldModificationWatch | public void clearFieldModificationWatch(Field f)(Code) | | |
clearMethodEntryWatch | public void clearMethodEntryWatch(Method m)(Code) | | |
clearMethodExitWatch | public void clearMethodExitWatch(Method m)(Code) | | |
clearWatch | protected void clearWatch(Object[] tags, int id)(Code) | | Set `tags[id] = null'. If `id' is out of bounds or the watch already
cleared a WatchNotSetException is thrown.
Parameters: tags - AOP tag array Parameters: id - Index into `tags' |
getInstance | public static AdviceJVMAI getInstance()(Code) | | Get sole instance (singleton) of this class.
Sole instance of this class |
getLoadedClasses | public List getLoadedClasses()(Code) | | |
notifyClassLoaded | public void notifyClassLoaded(VM_Class klass)(Code) | | |
notifyExceptionCaught | final public void notifyExceptionCaught(Throwable exception, VM_Method catcher)(Code) | | |
notifyExceptionThrown | final public void notifyExceptionThrown(Throwable exception, VM_Method thrower)(Code) | | |
onFieldAccess | final public static void onFieldAccess(Object owner, int fieldId, int methodId, Object this0, Object[] args)(Code) | | This callback will be invoked at field access join points. Invocation only
takes place if the callback is woven in to the corresponding method.
Parameters: owner - object that contains the field Parameters: fieldId - field identifier Parameters: methodId - method identifier Parameters: this0 - object on which the method containing the field access isexecuted Parameters: args - actual arguments of method being intercepted |
onFieldModification | final public static void onFieldModification(Object owner, int fieldId, int methodId, Object this0, Object[] args)(Code) | | This callback will be invoked at field modification join points.
Invocation only takes place if the callback is woven in to the
corresponding method.
Parameters: owner - object that contains the field Parameters: fieldId - field identifier Parameters: methodId - method identifier Parameters: this0 - object on which the method containing the field access isexecuted Parameters: args - actual arguments of method being intercepted |
onMethodEntry | final public static void onMethodEntry(int methodId, Object this0, Object[] args)(Code) | | This callback will be invoked at method entry join points. Invocation only
takes place if the callback is woven in to the corresponding method.
Parameters: methodId - method identifier Parameters: this0 - object on which the method is executed Parameters: args - actual arguments of method being intercepted |
onMethodExit | final public static void onMethodExit(int methodId, Object this0, Object[] args)(Code) | | This callback will be invoked at method exit join points. Invocation only
takes place if the callback is woven in to the corresponding method.
Parameters: methodId - method identifier Parameters: this0 - object on which the method is executed Parameters: args - actual arguments of method being intercepted |
resumeNotification | public void resumeNotification(Thread thread)(Code) | | |
setExceptionCatchWatch | public void setExceptionCatchWatch(Class c, Object aopTag)(Code) | | |
setExceptionThrowWatch | public void setExceptionThrowWatch(Class c, Object aopTag)(Code) | | |
setFieldModificationWatch | public void setFieldModificationWatch(Field f, Object aopTag)(Code) | | |
setWatch | protected Object[] setWatch(Object[] tags, Object tag, int id)(Code) | | Set `tags[id]' to `tag'. If `tags' is too small then resize it
appriopriately.
|
startup | public void startup(String[] packagePrefixes, boolean openWorldAssumption)(Code) | | |
suspendNotification | public void suspendNotification(Thread thread)(Code) | | |
teardown | public void teardown()(Code) | | |
|
|