1 21 package com.db4o.reflect.self; 22 23 import com.db4o.reflect.*; 24 25 public class SelfReflector implements Reflector { 26 private SelfArray _arrayHandler; 27 private SelfReflectionRegistry _registry; 28 29 private Reflector _parent; 30 31 public SelfReflector(SelfReflectionRegistry registry) { 32 _registry = registry; 33 } 34 35 public ReflectArray array() { 36 if(_arrayHandler==null) { 37 _arrayHandler=new SelfArray(this,_registry); 38 } 39 return _arrayHandler; 40 } 41 42 public boolean constructorCallsSupported() { 43 return true; 44 } 45 46 public ReflectClass forClass(Class clazz) { 47 return new SelfClass(_parent, _registry, clazz); 48 } 49 50 public ReflectClass forName(String className) { 51 try { 52 Class clazz = Class.forName(className); 53 return forClass(clazz); 54 } catch (ClassNotFoundException e) { 55 return null; 56 } 57 } 58 59 public ReflectClass forObject(Object a_object) { 60 if (a_object == null) { 61 return null; 62 } 63 return _parent.forClass(a_object.getClass()); 64 } 65 66 public boolean isCollection(ReflectClass claxx) { 67 return false; 68 } 69 70 public void setParent(Reflector reflector) { 71 _parent = reflector; 72 } 73 74 public Object deepClone(Object context) { 75 return new SelfReflector(_registry); 76 } 77 } 78 | Popular Tags |