private static PropertyDescriptor[] getPDs(final Class<?> clazz) { final Method[] methods = clazz.getMethods(); final Map<String, PropertyDescriptor> getters = getPDs(methods, false); final Map<String, PropertyDescriptor> setters = getPDs(methods, true); final List<PropertyDescriptor> propertyDescriptors = merge(getters, setters); return propertyDescriptors.toArray(new PropertyDescriptor[propertyDescriptors.size()]); }
/** * Extract all {@link PropertyDescriptor}s for properties with a getter (that does not come from * {@link Object} and does not accept parameters) and a setter. * * @param clazz The class to extract the desired {@link PropertyDescriptor}s from * @return All {@link PropertyDescriptor}s for properties with a getter (that does not come from * {@link Object} and does not accept parameters) and a setter. */ public static List<PropertyDescriptor> getPropertyDescriptorsWithGettersAndSetters(final Class<?> clazz) { final List<PropertyDescriptor> relevantDescriptors = new ArrayList<PropertyDescriptor>(); final List<PropertyDescriptor> propertyDescriptors = getPropertyDescriptorsWithGetters(clazz); for (final PropertyDescriptor propertyDescriptor : propertyDescriptors) { final Method setter = propertyDescriptor.getWriteMethod(); final boolean setterExists = setter != null; if (setterExists) { relevantDescriptors.add(propertyDescriptor); } } return relevantDescriptors; }
public void copy(final Object target, final Object source) { try { final List<PropertyDescriptor> propertyDescriptors = BeanIntrospector.getPropertyDescriptorsWithGettersAndSetters(beanInterfaceClass); for (final PropertyDescriptor propertyDescriptor : propertyDescriptors) { final String propertyName = propertyDescriptor.getName(); if (baseInterfaceMap.containsKey(propertyName)) { final Method getter = propertyDescriptor.getReadMethod(); // only copies properties defined as copyFrom-able Object value = getter.invoke(source, NO_PARAMS); if (value != null) { final Method setter = propertyDescriptor.getWriteMethod(); final Class<?> baseInterface = baseInterfaceMap.get(propertyName); value = doCopy(value, baseInterface); setter.invoke(target, new Object[] { value }); } } } } catch (final Exception e) { LOG.error("Error while copying object", e); throw new RuntimeException("Could not do a copyFrom " + e, e); } }
/** * Extract all {@link PropertyDescriptor}s for properties with getters and setters for the given * class. * * @param clazz The class to extract the desired {@link PropertyDescriptor}s from * @return All {@link PropertyDescriptor} for properties with getters and setters for the given * class. */ private static synchronized PropertyDescriptor[] getPropertyDescriptors(final Class<?> clazz) { PropertyDescriptor[] descriptors = introspected.get(clazz); if (descriptors == null) { descriptors = getPDs(clazz); introspected.put(clazz, descriptors); } return descriptors; }
/** * Extract all {@link PropertyDescriptor}s for properties with a getter that does not come from * {@link Object} and does not accept parameters. * * @param clazz The class to extract the desired {@link PropertyDescriptor}s from * @return All {@link PropertyDescriptor}s for properties with a getter that does not come from * {@link Object} and does not accept parameters. */ public static List<PropertyDescriptor> getPropertyDescriptorsWithGetters(final Class<?> clazz) { final List<PropertyDescriptor> relevantDescriptors = new ArrayList<PropertyDescriptor>(); final PropertyDescriptor[] propertyDescriptors = getPropertyDescriptors(clazz); if (propertyDescriptors != null) { for (final PropertyDescriptor propertyDescriptor : propertyDescriptors) { final Method getter = propertyDescriptor.getReadMethod(); final boolean getterExists = getter != null; if (getterExists) { final boolean getterFromObject = getter.getDeclaringClass() == Object.class; final boolean getterWithoutParams = getter.getParameterTypes().length == 0; if (!getterFromObject && getterWithoutParams) { relevantDescriptors.add(propertyDescriptor); } } } } return relevantDescriptors; }
propertyName = decapitalize(methodName.substring(3)); propertyDescriptor = new PropertyDescriptor(propertyName, null, method); propertyName = decapitalize(methodName.substring(3)); propertyDescriptor = new PropertyDescriptor(propertyName, method, null); } else if (methodName.startsWith(BOOLEAN_GETTER) && returnType == boolean.class && nrOfParameters == 0) { propertyName = decapitalize(methodName.substring(2)); propertyDescriptor = new PropertyDescriptor(propertyName, method, null);
public void copy(final Object target, final Object source) { try { final List<PropertyDescriptor> propertyDescriptors = BeanIntrospector.getPropertyDescriptorsWithGettersAndSetters(beanInterfaceClass); for (final PropertyDescriptor propertyDescriptor : propertyDescriptors) { final String propertyName = propertyDescriptor.getName(); if (baseInterfaceMap.containsKey(propertyName)) { final Method getter = propertyDescriptor.getReadMethod(); // only copies properties defined as copyFrom-able Object value = getter.invoke(source, NO_PARAMS); if (value != null) { final Method setter = propertyDescriptor.getWriteMethod(); final Class<?> baseInterface = baseInterfaceMap.get(propertyName); value = doCopy(value, baseInterface); setter.invoke(target, new Object[] { value }); } } } } catch (final Exception e) { LOG.error("Error while copying object", e); throw new RuntimeException("Could not do a copyFrom " + e, e); } }
/** * Extract all {@link PropertyDescriptor}s for properties with getters and setters for the given * class. * * @param clazz The class to extract the desired {@link PropertyDescriptor}s from * @return All {@link PropertyDescriptor} for properties with getters and setters for the given * class. */ private static synchronized PropertyDescriptor[] getPropertyDescriptors(final Class<?> clazz) { PropertyDescriptor[] descriptors = introspected.get(clazz); if (descriptors == null) { descriptors = getPDs(clazz); introspected.put(clazz, descriptors); } return descriptors; }
/** * Extract all {@link PropertyDescriptor}s for properties with a getter that does not come from * {@link Object} and does not accept parameters. * * @param clazz The class to extract the desired {@link PropertyDescriptor}s from * @return All {@link PropertyDescriptor}s for properties with a getter that does not come from * {@link Object} and does not accept parameters. */ public static List<PropertyDescriptor> getPropertyDescriptorsWithGetters(final Class<?> clazz) { final List<PropertyDescriptor> relevantDescriptors = new ArrayList<PropertyDescriptor>(); final PropertyDescriptor[] propertyDescriptors = getPropertyDescriptors(clazz); if (propertyDescriptors != null) { for (final PropertyDescriptor propertyDescriptor : propertyDescriptors) { final Method getter = propertyDescriptor.getReadMethod(); final boolean getterExists = getter != null; if (getterExists) { final boolean getterFromObject = getter.getDeclaringClass() == Object.class; final boolean getterWithoutParams = getter.getParameterTypes().length == 0; if (!getterFromObject && getterWithoutParams) { relevantDescriptors.add(propertyDescriptor); } } } } return relevantDescriptors; }
propertyName = decapitalize(methodName.substring(3)); propertyDescriptor = new PropertyDescriptor(propertyName, null, method); propertyName = decapitalize(methodName.substring(3)); propertyDescriptor = new PropertyDescriptor(propertyName, method, null); } else if (methodName.startsWith(BOOLEAN_GETTER) && returnType == boolean.class && nrOfParameters == 0) { propertyName = decapitalize(methodName.substring(2)); propertyDescriptor = new PropertyDescriptor(propertyName, method, null);
private static PropertyDescriptor[] getPDs(final Class<?> clazz) { final Method[] methods = clazz.getMethods(); final Map<String, PropertyDescriptor> getters = getPDs(methods, false); final Map<String, PropertyDescriptor> setters = getPDs(methods, true); final List<PropertyDescriptor> propertyDescriptors = merge(getters, setters); return propertyDescriptors.toArray(new PropertyDescriptor[propertyDescriptors.size()]); }
/** * Extract all {@link PropertyDescriptor}s for properties with a getter (that does not come from * {@link Object} and does not accept parameters) and a setter. * * @param clazz The class to extract the desired {@link PropertyDescriptor}s from * @return All {@link PropertyDescriptor}s for properties with a getter (that does not come from * {@link Object} and does not accept parameters) and a setter. */ public static List<PropertyDescriptor> getPropertyDescriptorsWithGettersAndSetters(final Class<?> clazz) { final List<PropertyDescriptor> relevantDescriptors = new ArrayList<PropertyDescriptor>(); final List<PropertyDescriptor> propertyDescriptors = getPropertyDescriptorsWithGetters(clazz); for (final PropertyDescriptor propertyDescriptor : propertyDescriptors) { final Method setter = propertyDescriptor.getWriteMethod(); final boolean setterExists = setter != null; if (setterExists) { relevantDescriptors.add(propertyDescriptor); } } return relevantDescriptors; }
final List<PropertyDescriptor> propertyDescriptors = BeanIntrospector.getPropertyDescriptorsWithGettersAndSetters(clazz); for (final PropertyDescriptor propertyDescriptor : propertyDescriptors) {
/** * Returns the String representation of the bean given in the constructor. * <p> * * @param prefix to use for bean properties. * @return bean object String representation. * */ private static String toString(final Class<?> beanClass, final Object obj, final String prefix) { final StringBuffer sb = new StringBuffer(128); try { final List<PropertyDescriptor> propertyDescriptors = BeanIntrospector.getPropertyDescriptorsWithGetters(beanClass); for (final PropertyDescriptor propertyDescriptor : propertyDescriptors) { final String propertyName = propertyDescriptor.getName(); final Method getter = propertyDescriptor.getReadMethod(); final Object value = getter.invoke(obj, NO_PARAMS); printProperty(sb, prefix + "." + propertyName, value); } } catch (final Exception e) { LOG.error("Error while generating toString", e); final Class<?> clazz = obj.getClass(); final String errorMessage = e.getMessage(); sb.append(String.format("\n\nEXCEPTION: Could not complete %s.toString(): %s\n", clazz, errorMessage)); } return sb.toString(); }
final List<PropertyDescriptor> propertyDescriptors = BeanIntrospector.getPropertyDescriptorsWithGettersAndSetters(clazz); for (final PropertyDescriptor propertyDescriptor : propertyDescriptors) {
/** * Returns the String representation of the bean given in the constructor. * <p> * * @param prefix to use for bean properties. * @return bean object String representation. * */ private static String toString(final Class<?> beanClass, final Object obj, final String prefix) { final StringBuffer sb = new StringBuffer(128); try { final List<PropertyDescriptor> propertyDescriptors = BeanIntrospector.getPropertyDescriptorsWithGetters(beanClass); for (final PropertyDescriptor propertyDescriptor : propertyDescriptors) { final String propertyName = propertyDescriptor.getName(); final Method getter = propertyDescriptor.getReadMethod(); final Object value = getter.invoke(obj, NO_PARAMS); printProperty(sb, prefix + "." + propertyName, value); } } catch (final Exception e) { LOG.error("Error while generating toString", e); final Class<?> clazz = obj.getClass(); final String errorMessage = e.getMessage(); sb.append(String.format("\n\nEXCEPTION: Could not complete %s.toString(): %s\n", clazz, errorMessage)); } return sb.toString(); }
try { final List<PropertyDescriptor> propertyDescriptors = BeanIntrospector.getPropertyDescriptorsWithGetters(beanClass); for (final PropertyDescriptor propertyDescriptor : propertyDescriptors) {
try { final List<PropertyDescriptor> propertyDescriptors = BeanIntrospector.getPropertyDescriptorsWithGetters(beanClass); for (final PropertyDescriptor propertyDescriptor : propertyDescriptors) {