KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > db4odoc > f1 > reflections > LoggingReflector


1 /* Copyright (C) 2004 - 2005 db4objects Inc. http://www.db4o.com */
2
3 package com.db4odoc.f1.reflections;
4
5 import com.db4o.reflect.ReflectArray;
6 import com.db4o.reflect.ReflectClass;
7 import com.db4o.reflect.Reflector;
8 import com.db4o.reflect.jdk.JdkClass;
9
10 public class LoggingReflector implements Reflector {
11     private ReflectArray _array;
12     
13     private Reflector _parent;
14
15
16     public LoggingReflector() {
17     
18     }
19     
20     public ReflectArray array() {
21          if(_array == null){
22                 _array = new LoggingArray(_parent);
23             }
24          return _array;
25     }
26
27     public boolean constructorCallsSupported() {
28         return true;
29     }
30
31     public ReflectClass forClass(Class JavaDoc clazz) {
32         ReflectClass rc = new JdkClass(_parent, clazz);
33         System.out.println("forClass: " + clazz+" -> "+(rc== null ? "" : rc.getName()));
34         return rc;
35     }
36
37     public ReflectClass forName(String JavaDoc className) {
38         try {
39             Class JavaDoc clazz = Class.forName(className);
40             ReflectClass rc = forClass(clazz);
41             System.out.println("forName: " + className+" -> "+(rc== null ? "" : rc.getName()));
42             return rc;
43         } catch (ClassNotFoundException JavaDoc e) {
44             return null;
45         }
46     }
47
48     public ReflectClass forObject(Object JavaDoc a_object) {
49         if (a_object == null) {
50             return null;
51         }
52         ReflectClass rc = _parent.forClass(a_object.getClass());
53         System.out.println("forObject:" + a_object+" -> "+(rc== null ? "" : rc.getName()));
54         return rc;
55     }
56
57     public boolean isCollection(ReflectClass claxx) {
58         return false;
59     }
60
61     public void setParent(Reflector reflector) {
62         _parent = reflector;
63     }
64
65     public Object JavaDoc deepClone(Object JavaDoc context) {
66         return new LoggingReflector();
67     }
68 }
69
Popular Tags