xref: /aosp_15_r20/external/javassist/sample/reflect/VerboseMetaobj.java (revision f1fbf3c2ab775ce834e0af96b7a85bdc7a0eac65)
1*f1fbf3c2SXin Li package sample.reflect;
2*f1fbf3c2SXin Li 
3*f1fbf3c2SXin Li import javassist.tools.reflect.*;
4*f1fbf3c2SXin Li 
5*f1fbf3c2SXin Li public class VerboseMetaobj extends Metaobject {
VerboseMetaobj(Object self, Object[] args)6*f1fbf3c2SXin Li     public VerboseMetaobj(Object self, Object[] args) {
7*f1fbf3c2SXin Li         super(self, args);
8*f1fbf3c2SXin Li         System.out.println("** constructed: " + self.getClass().getName());
9*f1fbf3c2SXin Li     }
10*f1fbf3c2SXin Li 
trapFieldRead(String name)11*f1fbf3c2SXin Li     public Object trapFieldRead(String name) {
12*f1fbf3c2SXin Li         System.out.println("** field read: " + name);
13*f1fbf3c2SXin Li         return super.trapFieldRead(name);
14*f1fbf3c2SXin Li     }
15*f1fbf3c2SXin Li 
trapFieldWrite(String name, Object value)16*f1fbf3c2SXin Li     public void trapFieldWrite(String name, Object value) {
17*f1fbf3c2SXin Li         System.out.println("** field write: " + name);
18*f1fbf3c2SXin Li         super.trapFieldWrite(name, value);
19*f1fbf3c2SXin Li     }
20*f1fbf3c2SXin Li 
trapMethodcall(int identifier, Object[] args)21*f1fbf3c2SXin Li     public Object trapMethodcall(int identifier, Object[] args)
22*f1fbf3c2SXin Li             throws Throwable {
23*f1fbf3c2SXin Li         System.out.println("** trap: " + getMethodName(identifier) + "() in "
24*f1fbf3c2SXin Li                 + getClassMetaobject().getName());
25*f1fbf3c2SXin Li         return super.trapMethodcall(identifier, args);
26*f1fbf3c2SXin Li     }
27*f1fbf3c2SXin Li }
28