/** * Create a new object given a class (not an interface). To create an object from interfaces * use createObject(Set classes) or simpleCreateObject(Class). * * @param clazz the class of the object to instantiate * @param <C> The type of the object that is expected * @return the object * @throws IllegalArgumentException if an error occurs */ public static <C extends FastPathObject> C createObject(Class<C> clazz) { C retval = null; try { retval = clazz.newInstance(); } catch (Exception e) { IllegalArgumentException e2 = new IllegalArgumentException(); e2.initCause(e); throw e2; } if (retval instanceof Factory) { ((Factory) retval).setCallback(0, new DynamicBean()); } return retval; }
FastPathObject retval = DynamicBean.create(fpclazz, interfaces.toArray(new Class[] {})); classMap.put(classes, retval.getClass()); return retval;
return doToString(obj); return handleGetFieldValue(obj, method, args); return handleGetFieldProxy(obj, args); return handleGet(method); return handleAddObject(method, args);
Map<String, Object> valueMap = bean.getMap(); Map<String, FieldDescriptor> fields = os.getModel() .getFieldDescriptorsForClass(retval.getClass());
Map<String, Object> valueMap = bean.getMap(); Map<String, FieldDescriptor> fields = os.getModel() .getFieldDescriptorsForClass(retval.getClass());
return doToString(obj); return handleGetFieldValue(obj, method, args); return handleGetFieldProxy(obj, args); return handleGet(method); return handleAddObject(method, args);
public void testCreateObjectInterfaceAsClass() { try { DynamicBean.create(Company.class, null); fail("Expected: IllegalArgumentException"); } catch (IllegalArgumentException e) { } }
/** * Create a new object given a class (not an interface). To create an object from interfaces * use createObject(Set classes) or simpleCreateObject(Class). * * @param clazz the class of the object to instantiate * @param <C> The type of the object that is expected * @return the object * @throws IllegalArgumentException if an error occurs */ public static <C extends FastPathObject> C createObject(Class<C> clazz) { C retval = null; try { retval = clazz.newInstance(); } catch (Exception e) { IllegalArgumentException e2 = new IllegalArgumentException(); e2.initCause(e); throw e2; } if (retval instanceof Factory) { ((Factory) retval).setCallback(0, new DynamicBean()); } return retval; }
public void testParseDynamic() throws Exception { String s = NotXmlParser.DELIM + "org.intermine.model.testmodel.Company net.sf.cglib.proxy.Factory" + NotXmlParser.DELIM + "raddress" + NotXmlParser.DELIM + "74328" + NotXmlParser.DELIM + "avatNumber" + NotXmlParser.DELIM + "100" + NotXmlParser.DELIM + "aname" + NotXmlParser.DELIM + "CompanyC" + NotXmlParser.DELIM + "aid" + NotXmlParser.DELIM + "74350"; Company obj1 = (Company) NotXmlParser.parse(s, os); assertEquals("CompanyC", obj1.getName()); assertEquals(100, obj1.getVatNumber()); assertEquals(new Integer(74350), obj1.getId()); Map fieldMap = ((DynamicBean) ((net.sf.cglib.proxy.Factory) obj1).getCallback(0)).getMap(); ProxyReference addressRef = (ProxyReference) fieldMap.get("address"); assertNotNull(addressRef); assertEquals(new Integer(74328), addressRef.getId()); }
FastPathObject retval = DynamicBean.create(fpclazz, interfaces.toArray(new Class[] {})); classMap.put(classes, retval.getClass()); return retval;
/** * Create a DynamicBean * * @param clazz the class to extend * @param inter the interfaces to implement * @return the DynamicBean */ public static FastPathObject create(Class<? extends FastPathObject> clazz, Class<?> [] inter) { if ((clazz != null) && clazz.isInterface()) { throw new IllegalArgumentException("clazz must not be an interface"); } // If Enhancer.create() called with a null class it will alter java.lang.Object // this causes a security exception if run with Kaffe JRE //if ( clazz == null) { // clazz = DynamicBean.class; //} Callback[] callbacks = {new DynamicBean(), NoOp.INSTANCE}; Enhancer e = new Enhancer(); e.setSuperclass(clazz); e.setInterfaces(inter); e.setCallbackFilter(FINALIZE_FILTER); e.setCallbacks(callbacks); return (FastPathObject) e.create(); }
public void testCreateObjectNoClassTwoInterfaces() { Object obj = DynamicBean.create(null, new Class[] { Employable.class, ImportantPerson.class }); assertTrue(obj instanceof Employable); assertTrue(obj instanceof ImportantPerson); }
/** * Create a DynamicBean * * @param clazz the class to extend * @param inter the interfaces to implement * @return the DynamicBean */ public static FastPathObject create(Class<? extends FastPathObject> clazz, Class<?> [] inter) { if ((clazz != null) && clazz.isInterface()) { throw new IllegalArgumentException("clazz must not be an interface"); } // If Enhancer.create() called with a null class it will alter java.lang.Object // this causes a security exception if run with Kaffe JRE //if ( clazz == null) { // clazz = DynamicBean.class; //} Callback[] callbacks = {new DynamicBean(), NoOp.INSTANCE}; Enhancer e = new Enhancer(); e.setSuperclass(clazz); e.setInterfaces(inter); e.setCallbackFilter(FINALIZE_FILTER); e.setCallbacks(callbacks); return (FastPathObject) e.create(); }
public void testCreateObjectClassTwoInterfaces() { Object obj = DynamicBean.create(Department.class, new Class[] { Employable.class, ImportantPerson.class }); assertTrue(obj instanceof Department); assertTrue(obj instanceof Employable); assertTrue(obj instanceof ImportantPerson); } }
public void testConstructors() throws Exception { Class c = DynamicUtil.composeClass(Company.class, Broke.class); Company obj = (Company) c.newInstance(); ((net.sf.cglib.proxy.Factory) obj).setCallback(0, new DynamicBean()); obj.setName("Fred"); assertEquals("Fred", obj.getName()); }
public void testCreateObjectNoClassOneInterface() { Object obj = DynamicBean.create(null, new Class[] { Employable.class }); assertTrue(obj instanceof Employable); Employable e = (Employable) obj; e.setName("Employee1"); assertEquals("Employee1", e.getName()); }
public void testCreateObjectClassNoInterfaces() { Object obj = DynamicBean.create(Employee.class, null); assertTrue(obj instanceof Employee); Employee e = (Employee) obj; e.setName("Employee1"); Department d = new Department(); e.setDepartment(d); assertEquals("Employee1", e.getName()); assertTrue(e.getDepartment() == d); }