diff options
Diffstat (limited to 'tutorial/examples/rtrefl/VerboseRTMetaObject.java')
-rw-r--r-- | tutorial/examples/rtrefl/VerboseRTMetaObject.java | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/tutorial/examples/rtrefl/VerboseRTMetaObject.java b/tutorial/examples/rtrefl/VerboseRTMetaObject.java new file mode 100644 index 0000000..2870eab --- /dev/null +++ b/tutorial/examples/rtrefl/VerboseRTMetaObject.java @@ -0,0 +1,38 @@ +package examples.rtrefl; + + +import java.lang.reflect.*; + + +/** + * The class VerboseRTMetaObject + * Exception handling is not implemented. + */ +public class VerboseRTMetaObject extends RTMetaObject +{ + RTMetaLevel baseObj; + + public VerboseRTMetaObject(RTMetaLevel base_obj) { + super(base_obj); + this.baseObj = base_obj; + } + + public Object trapMethodCall(String name, Class[] paramTypes, Object[] args) + { + System.out.println(baseObj.getClass().getName() + "." + + name + "()" + " is called." ); + return super.trapMethodCall(name, paramTypes, args); + } + + public Object trapFieldRead(String name) { + System.out.println(baseObj.getClass().getName() + "." + + name + " is read." ); + return super.trapFieldRead(name); + } + + public void trapFieldWrite(String name, Object rvalue) { + System.out.println(baseObj.getClass().getName() + "." + + name + " is written." ); + super.trapFieldWrite(name, rvalue); + } +} |