aboutsummaryrefslogtreecommitdiff
path: root/sample/reflect/VerboseMetaobj.java
diff options
context:
space:
mode:
Diffstat (limited to 'sample/reflect/VerboseMetaobj.java')
-rw-r--r--sample/reflect/VerboseMetaobj.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/sample/reflect/VerboseMetaobj.java b/sample/reflect/VerboseMetaobj.java
new file mode 100644
index 0000000..cc47999
--- /dev/null
+++ b/sample/reflect/VerboseMetaobj.java
@@ -0,0 +1,27 @@
+package sample.reflect;
+
+import javassist.tools.reflect.*;
+
+public class VerboseMetaobj extends Metaobject {
+ public VerboseMetaobj(Object self, Object[] args) {
+ super(self, args);
+ System.out.println("** constructed: " + self.getClass().getName());
+ }
+
+ public Object trapFieldRead(String name) {
+ System.out.println("** field read: " + name);
+ return super.trapFieldRead(name);
+ }
+
+ public void trapFieldWrite(String name, Object value) {
+ System.out.println("** field write: " + name);
+ super.trapFieldWrite(name, value);
+ }
+
+ public Object trapMethodcall(int identifier, Object[] args)
+ throws Throwable {
+ System.out.println("** trap: " + getMethodName(identifier) + "() in "
+ + getClassMetaobject().getName());
+ return super.trapMethodcall(identifier, args);
+ }
+}