/** * Returns the type of a field if it exists within the class. Calling this * method is equal to calling # * {@link ReflectionUtils#getField(java.lang.Class, java.lang.String) * } with * a null check and finally return the type via getType(). * * @param clazz The class within to look for the field with the given field * name * @param fieldName The name of the field to be returned * @return The type of the field if it can be found, otherwise null * @see ReflectionUtils#getField(java.lang.Class, java.lang.String) */ public static Class<?> getFieldType(Class<?> clazz, String fieldName) { Field f = getField(clazz, fieldName); if (f == null) { return null; } return f.getType(); }
private void setField(Object object, Class<?> clazz, String field, Object value) { boolean madeAccessible = false; Field f = null; try { f = ReflectionUtils.getField(clazz, field); madeAccessible = !f.isAccessible(); if (madeAccessible) { f.setAccessible(true); } f.set(object, value); } catch (Exception e1) { throw new RuntimeException(e1); } finally { if (madeAccessible) { f.setAccessible(false); } } }
@SuppressWarnings("unchecked") private <T> T getField(Object object, String field) { boolean madeAccessible = false; Field f = null; try { f = ReflectionUtils.getField(object.getClass(), field); madeAccessible = !f.isAccessible(); if (madeAccessible) { f.setAccessible(true); } return (T) f.get(object); } catch (Exception e1) { throw new RuntimeException(e1); } finally { if (madeAccessible) { f.setAccessible(false); } } }
public static Class<?> getResolvedFieldType(Class<?> clazz, String fieldName) { return getResolvedFieldType(clazz, getField(clazz, fieldName)); }
@SuppressWarnings("unchecked") private <T> T getField(Object object, String field) { boolean madeAccessible = false; Field f = null; try { f = ReflectionUtils.getField(object.getClass(), field); madeAccessible = !f.isAccessible(); if (madeAccessible) { f.setAccessible(true); } return (T) f.get(object); } catch (Exception e1) { throw new RuntimeException(e1); } finally { if (madeAccessible) { f.setAccessible(false); } } }
@SuppressWarnings("unchecked") private <T> T getField(Object object, String field) { boolean madeAccessible = false; Field f = null; try { f = ReflectionUtils.getField(object.getClass(), field); madeAccessible = !f.isAccessible(); if (madeAccessible) { f.setAccessible(true); } return (T) f.get(object); } catch (Exception e1) { throw new RuntimeException(e1); } finally { if (madeAccessible) { f.setAccessible(false); } } }
@SuppressWarnings("unchecked") private <T> T getField(Object object, String field) { boolean madeAccessible = false; Field f = null; try { f = ReflectionUtils.getField(object.getClass(), field); madeAccessible = !f.isAccessible(); if (madeAccessible) { f.setAccessible(true); } return (T) f.get(object); } catch (Exception e1) { throw new RuntimeException(e1); } finally { if (madeAccessible) { f.setAccessible(false); } } }
public static Class<?>[] getResolvedFieldTypeArguments(Class<?> clazz, String fieldName) { return getResolvedFieldTypeArguments(clazz, getField(clazz, fieldName)); }
@SuppressWarnings("unchecked") private <T> T getField(Object object, String field) { boolean madeAccessible = false; Field f = null; try { f = ReflectionUtils.getField(object.getClass(), field); madeAccessible = !f.isAccessible(); if (madeAccessible) { f.setAccessible(true); } return (T) f.get(object); } catch (Exception e1) { throw new RuntimeException(e1); } finally { if (madeAccessible) { f.setAccessible(false); } } }
@SuppressWarnings("unchecked") private <T> T getField(Object object, String field) { boolean madeAccessible = false; Field f = null; try { f = ReflectionUtils.getField(object.getClass(), field); madeAccessible = !f.isAccessible(); if (madeAccessible) { f.setAccessible(true); } return (T) f.get(object); } catch (Exception e1) { throw new RuntimeException(e1); } finally { if (madeAccessible) { f.setAccessible(false); } } }
ViewAttributeAccessor(EntityViewManagerImpl evm, MethodAttribute<?, ?> attribute, boolean readonly) { Class<?> clazz = attribute.getDeclaringType().getJavaType(); Method getter = ReflectionUtils.getGetter(clazz, attribute.getName()); if (!Modifier.isPublic(getter.getModifiers()) || !Modifier.isPublic(getter.getDeclaringClass().getModifiers())) { try { getter.setAccessible(true); } catch (Exception e) { throw new RuntimeException("Couldn't make method for entity view attribute accessible for reading!", e); } } this.getter = getter; if (readonly) { this.field = null; } else { Class<?> proxyClass = evm.getProxyFactory().getProxy(evm, (ManagedViewTypeImplementor<Object>) attribute.getDeclaringType(), null); Field f = ReflectionUtils.getField(proxyClass, attribute.getName()); try { f.setAccessible(true); } catch (Exception e) { throw new RuntimeException("Couldn't make field for entity view attribute accessible for writing!", e); } this.field = f; } }
statementExectuor = ReflectionUtils.getField(queryTranslator.getClass(), "statementExecutor"); madeAccessible = !statementExectuor.isAccessible();
private Class<? extends Serializable> resolvePropertyType(Class<?> baseClazz, String property) { Class<?> clazz = baseClazz; String[] propertyParts = property.split("\\."); for (int i = 0; i < propertyParts.length; i++) { Method getter = ReflectionUtils.getGetter(clazz, propertyParts[i]); if (getter == null) { Field field = ReflectionUtils.getField(clazz, propertyParts[i]); if (field == null) { throw new IllegalArgumentException("Couldn't find property '" + propertyParts[i] + "' on type '" + clazz + "' while resolving path '" + property + "' on type '" + baseClazz + "'"); } Class<?>[] typeArguments = ReflectionUtils.getResolvedFieldTypeArguments(clazz, field); if (typeArguments.length == 0) { clazz = ReflectionUtils.getResolvedFieldType(clazz, field); } else { clazz = typeArguments[typeArguments.length - 1]; } } else { Class<?>[] typeArguments = ReflectionUtils.getResolvedMethodReturnTypeArguments(clazz, getter); if (typeArguments.length == 0) { clazz = ReflectionUtils.getResolvedMethodReturnType(clazz, getter); } else { clazz = typeArguments[typeArguments.length - 1]; } } } return (Class<? extends Serializable>) clazz; }
private Class<? extends Serializable> resolvePropertyType(Class<?> baseClazz, String property) { Class<?> clazz = baseClazz; String[] propertyParts = property.split("\\."); for (int i = 0; i < propertyParts.length; i++) { Method getter = ReflectionUtils.getGetter(clazz, propertyParts[i]); if (getter == null) { Field field = ReflectionUtils.getField(clazz, propertyParts[i]); if (field == null) { throw new IllegalArgumentException("Couldn't find property '" + propertyParts[i] + "' on type '" + clazz + "' while resolving path '" + property + "' on type '" + baseClazz + "'"); } Class<?>[] typeArguments = ReflectionUtils.getResolvedFieldTypeArguments(clazz, field); if (typeArguments.length == 0) { clazz = ReflectionUtils.getResolvedFieldType(clazz, field); } else { clazz = typeArguments[typeArguments.length - 1]; } } else { Class<?>[] typeArguments = ReflectionUtils.getResolvedMethodReturnTypeArguments(clazz, getter); if (typeArguments.length == 0) { clazz = ReflectionUtils.getResolvedMethodReturnType(clazz, getter); } else { clazz = typeArguments[typeArguments.length - 1]; } } } return (Class<? extends Serializable>) clazz; }
private Class<? extends Serializable> resolvePropertyType(Class<?> baseClazz, String property) { Class<?> clazz = baseClazz; String[] propertyParts = property.split("\\."); for (int i = 0; i < propertyParts.length; i++) { Method getter = ReflectionUtils.getGetter(clazz, propertyParts[i]); if (getter == null) { Field field = ReflectionUtils.getField(clazz, propertyParts[i]); if (field == null) { throw new IllegalArgumentException("Couldn't find property '" + propertyParts[i] + "' on type '" + clazz + "' while resolving path '" + property + "' on type '" + baseClazz + "'"); } Class<?>[] typeArguments = ReflectionUtils.getResolvedFieldTypeArguments(clazz, field); if (typeArguments.length == 0) { clazz = ReflectionUtils.getResolvedFieldType(clazz, field); } else { clazz = typeArguments[typeArguments.length - 1]; } } else { Class<?>[] typeArguments = ReflectionUtils.getResolvedMethodReturnTypeArguments(clazz, getter); if (typeArguments.length == 0) { clazz = ReflectionUtils.getResolvedMethodReturnType(clazz, getter); } else { clazz = typeArguments[typeArguments.length - 1]; } } } return (Class<? extends Serializable>) clazz; }
statementExectuor = ReflectionUtils.getField(queryTranslator.getClass(), "statementExecutor"); madeAccessible = !statementExectuor.isAccessible();