public static BeanDescription fromObject(Object bean) { String className = bean.getClass().getCanonicalName(); BeanDescription desc = new BeanDescription(className); populateData(desc, bean); return desc; }
/** * reconstructs the original object the {@link BeanDescription} is representing. */ public Object toObject() { Class<?> beanType = getBeanType(); return toObject(beanType); }
/** * reconstructs the original object the {@link BeanDescription} is representing. */ public Object toObject() { Class<?> beanType = getBeanType(); Collection<PropertyDescriptor> accessibleProperties = getAccessiblePropertiesFromBean(beanType); Object bean; try { bean = beanType.newInstance(); for (PropertyDescriptor d : accessibleProperties) { doSetPropertyOnBean(bean, d); } return bean; } catch (InstantiationException e) { throw new IllegalStateException(e); } catch (IllegalAccessException e) { throw new IllegalStateException(e); } catch (InvocationTargetException e) { throw new IllegalStateException(e); } }
private static BeanDescription populateData(BeanDescription desc, Object bean) { Collection<PropertyDescriptor> relevantPropertyDescriptors = getAccessiblePropertiesFromBean(bean.getClass()); for (PropertyDescriptor propertyDescriptor : relevantPropertyDescriptors) { if (byte[].class.isAssignableFrom(propertyDescriptor.getPropertyType())) { desc.binaryData.put(propertyDescriptor.getName(), (byte[]) getPropertyValue(bean, propertyDescriptor)); } else if (!propertyDescriptor.getPropertyType().isArray()) { desc.data.put(propertyDescriptor.getName(), getPropertyValue(bean, propertyDescriptor).toString()); } } return desc; }
/** * reconstructs the original object the {@link BeanDescription} is representing. */ public <T> T toObject(Class<T> type) { Collection<PropertyDescriptor> accessibleProperties = getAccessiblePropertiesFromBean(type); T bean; try { bean = type.newInstance(); for (PropertyDescriptor d : accessibleProperties) { doSetPropertyOnBean(bean, d); } return bean; } catch (InstantiationException e) { throw new IllegalStateException(e); } catch (IllegalAccessException e) { throw new IllegalStateException(e); } catch (InvocationTargetException e) { throw new IllegalStateException(e); } }
private void doSetPropertyOnBean(Object bean, PropertyDescriptor d) throws IllegalAccessException, InvocationTargetException, InstantiationException { Class<?> propertyType = d.getPropertyType(); if (byte[].class.isAssignableFrom(propertyType)) { d.getWriteMethod().invoke(bean, binaryData.get(d.getName())); } else { Object value = getPropertyValueFromString(d, propertyType); d.getWriteMethod().invoke(bean, value); } }
public AuthenticationInfo retrieveAuthenticationInfo() { return authenticationData.toObject(AuthenticationInfo.class); }
private static BeanDescription populateData(BeanDescription desc, Object bean) { Collection<PropertyDescriptor> relevantPropertyDescriptors = getAccessiblePropertiesFromBean(bean.getClass()); for (PropertyDescriptor propertyDescriptor : relevantPropertyDescriptors) { if (byte[].class.isAssignableFrom(propertyDescriptor.getPropertyType())) { desc.binaryData.put(propertyDescriptor.getName(), (byte[]) getPropertyValue(bean, propertyDescriptor)); } else if (!propertyDescriptor.getPropertyType().isArray()) { desc.data.put(propertyDescriptor.getName(), getPropertyValue(bean, propertyDescriptor).toString()); } } return desc; }
private void doSetPropertyOnBean(Object bean, PropertyDescriptor d) throws IllegalAccessException, InvocationTargetException, InstantiationException { Class<?> propertyType = d.getPropertyType(); if (byte[].class.isAssignableFrom(propertyType)) { d.getWriteMethod().invoke(bean, binaryData.get(d.getName())); } else { Object value = getPropertyValueFromString(d, propertyType); d.getWriteMethod().invoke(bean, value); } }
public static BeanDescription fromObject(Object bean) { String className = bean.getClass().getCanonicalName(); BeanDescription desc = new BeanDescription(className); populateData(desc, bean); return desc; }
/** * reconstructs the original object the {@link BeanDescription} is representing. */ @SuppressWarnings("unchecked") public <T> T toObject(Class<T> type) { Class<?> beanType = getBeanType(); Preconditions .checkArgument(type.isAssignableFrom(beanType), "types are not compatible (%s,%s)", type, beanType); return (T) toObject(); }