1 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 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 className) { 38 try { 39 Class 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 e) { 44 return null; 45 } 46 } 47 48 public ReflectClass forObject(Object 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 deepClone(Object context) { 66 return new LoggingReflector(); 67 } 68 } 69 | Popular Tags |