public Object getPropertyValue(Object component, int i) throws HibernateException { return getters[i].get( component ); }
@Override protected Object executeForIntermediateField(String field, Object result) throws InstantiationException, IllegalAccessException { // set intermediate object association Getter getter = propertyAccessor.getGetter(result.getClass(), field); Setter setter = propertyAccessor.getSetter(result.getClass(), field); Object associate = getter.get(result); if (associate == null) { // there is no instance yet in referenced field associate = getter.getReturnType().newInstance(); } setter.set(result, associate, null); return associate; } }.resolve(alias, i);
public boolean isMethodOf(Method method) { for ( int i = 0; i < propertySpan; i++ ) { final Method getterMethod = getters[i].getMethod(); if ( getterMethod != null && getterMethod.equals( method ) ) { return true; } } return false; }
protected AbstractComponentTuplizer(Component component) { propertySpan = component.getPropertySpan(); getters = new Getter[propertySpan]; setters = new Setter[propertySpan]; Iterator iter = component.getPropertyIterator(); boolean foundCustomAccessor=false; int i=0; while ( iter.hasNext() ) { Property prop = (Property) iter.next(); getters[i] = buildGetter(component, prop); setters[i] = buildSetter(component, prop); if ( !prop.isBasicPropertyAccessor() ) foundCustomAccessor = true; i++; } hasCustomAccessors = foundCustomAccessor; String[] getterNames = new String[propertySpan]; String[] setterNames = new String[propertySpan]; Class[] propTypes = new Class[propertySpan]; for ( int j = 0; j < propertySpan; j++ ) { getterNames[j] = getters[j].getMethodName(); setterNames[j] = setters[j].getMethodName(); propTypes[j] = getters[j].getReturnType(); } instantiator = buildInstantiator(component); }
@Override protected Class<?> executeForIntermediateField(String field, Class<?> result) { // get chained field class Getter getter = propertyAccessor.getGetter(result, field); return getter.getReturnType(); } }.resolve(alias, i);
@Ignore("need to convert, was originally written for the old value holder design (TextString, etc)") @Test public void happyCase() { obj.setString(expected); NakedPropertyAccessor accessor = new NakedPropertyAccessor(); Getter getter = accessor.getGetter(SimpleObject.class, "string"); assertNotNull(getter); assertNull("getMethod", getter.getMethod()); assertNull("getMethodName", getter.getMethodName()); assertEquals("return type", String.class, getter.getReturnType()); }
@Ignore("need to convert, was originally written for the old value holder design (TextString, etc)") @Test public void testGetter() { obj.setString(expected); NakedPropertyAccessor accessor = new NakedPropertyAccessor(); Getter getter = accessor.getGetter(SimpleObject.class, "string"); assertEquals("string", expected, getter.get(obj)); assertEquals("string", expected, getter.getForInsert(obj, null, null)); }
@Test public void happyCase() { final UserAccessor accessor = new UserAccessor(); final Getter getter = accessor.getGetter(TestObject.class, PropertyHelper.MODIFIED_BY); assertNotNull(getter); assertNull("getMethod", getter.getMethod()); assertNull("getMethodName", getter.getMethodName()); }
public Object[] getPropertyValuesToInsert(Object entity, SessionImplementor session) throws HibernateException { final int span = entityMetamodel.getPropertySpan(); final Object[] result = new Object[span]; for ( int j = 0; j < span; j++ ) { result[j] = getters[j].getForInsert( entity, session ); } return result; }
Class[] propTypes = new Class[propertySpan]; for ( int i = 0; i < propertySpan; i++ ) { getterNames[i] = getters[i].getMethodName(); setterNames[i] = setters[i].getMethodName(); propTypes[i] = getters[i].getReturnType();
/** * Attempt to resolve the specified property type through reflection. * * @param clazz The class owning the property. * @param name The name of the property. * @return The type of the property. * @throws MappingException Indicates we were unable to locate the property. */ public static Class reflectedPropertyClass(Class clazz, String name) throws MappingException { return getter( clazz, name ).getReturnType(); }
public Object[] getPropertyValuesToInsert(Object entity, Map mergeMap, SessionImplementor session) throws HibernateException { final int span = entityMetamodel.getPropertySpan(); final Object[] result = new Object[span]; for ( int j = 0; j < span; j++ ) { result[j] = getters[j].getForInsert( entity, mergeMap, session ); } return result; }
public Object getPropertyValue(Object entity, int i) throws HibernateException { return getters[i].get( entity ); }
Class[] propTypes = new Class[propertySpan]; for ( int i = 0; i < propertySpan; i++ ) { getterNames[i] = getters[i].getMethodName(); setterNames[i] = setters[i].getMethodName(); propTypes[i] = getters[i].getReturnType();
public Query setProperties(Object bean) throws HibernateException { Class clazz = bean.getClass(); String[] params = getNamedParameters(); for (int i = 0; i < params.length; i++) { String namedParam = params[i]; try { Getter getter = ReflectHelper.getGetter(clazz, namedParam); Class retType = getter.getReturnType(); final Object object = getter.get( bean ); if ( Collection.class.isAssignableFrom(retType) ) { setParameterList( namedParam, (Collection) object ); } else if ( retType.isArray() ) { setParameterList( namedParam, (Object[]) object ); } else { setParameter( namedParam, object, guessType( getter.getReturnType() ) ); } } catch (PropertyNotFoundException pnfe) {} } return this; }
/** * Attempt to resolve the specified property type through reflection. * * @param clazz The class owning the property. * @param name The name of the property. * @return The type of the property. * @throws MappingException Indicates we were unable to locate the property. */ public static Class reflectedPropertyClass(Class clazz, String name) throws MappingException { return getter( clazz, name ).getReturnType(); }
public boolean isMethodOf(Method method) { for ( int i=0; i<propertySpan; i++ ) { final Method getterMethod = getters[i].getMethod(); if ( getterMethod!=null && getterMethod.equals(method) ) return true; } return false; }
public Object[] getPropertyValuesToInsert(Object entity, Map mergeMap, SessionImplementor session) throws HibernateException { final int span = entityMetamodel.getPropertySpan(); final Object[] result = new Object[span]; for ( int j = 0; j < span; j++ ) { result[j] = getters[j].getForInsert( entity, mergeMap, session ); } return result; }
public Object getParent(Object component) { return parentGetter.get( component ); }
Class[] propTypes = new Class[propertySpan]; for ( int i = 0; i < propertySpan; i++ ) { getterNames[i] = getters[i].getMethodName(); setterNames[i] = setters[i].getMethodName(); propTypes[i] = getters[i].getReturnType();