summaryrefslogtreecommitdiff
path: root/tutorial/examples/rtrefl/VerboseRTMetaObject.java
blob: 2870eab094fc815e9e3cd7608feba6172915f5e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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);
    }
}