Figure 2 - Interface for Kava MetaObject
public interface IMetaObject {
public void beforeExecuteMethod(IExecutionContext context)
public void afterExecuteMethod(IExecutionContext context);
/* called when a method is executed (including constructor/finalizer) */
public void beforePutField(IFieldContext context);
public void afterPutField(IFieldContext context);
/* called when a field is accessed */
public void beforeGetField(IFieldContext context);
public void afterGetField(IFieldContext context);
/* called when a field is read */
public void beforeInvoke(IInvocationContext context);
public void afterInvoke(IInvocationContext context);
/* called when a method is invoked (including initialser */
public void beforeException(IExceptionContext context);
public void afterException(IExceptionContext context);
/* called when an exception is thrown and caught */
}
Return to paper