public static <T> T create(MappingParameters params, Class<T> targetClass) { return (T) create(params, targetClass, null); }
public void setFactories(Map<String, BeanFactory> factories) { checkIfInitialized(); DestBeanCreator.setStoredFactories(factories); }
public static Object create(BeanCreationDirective directive) { Object result = applyStrategies(directive, pluggedStrategies); if (result == null) result = applyStrategies(directive, Arrays.asList(availableStrategies)); return result; }
public static <T> T create(Class<T> targetClass) { return (T) create(targetClass, null); }
public void setFactories(Map<String, BeanFactory> factories) { checkIfInitialized(); DestBeanCreator.setStoredFactories(factories); }
public static <T> T create(MappingParameters params, Class<T> targetClass) { return (T) create(params, targetClass, null); }
public void setFactories(Map<String, BeanFactory> factories) { checkIfInitialized(); DestBeanCreator.setStoredFactories(factories); }
public static Object create(Class<?> targetClass, Class<?> alternateClass) { return create(new BeanCreationDirective(null, null, targetClass, alternateClass, null, null, null)); }
private Object mapMap(Object srcObj, Map srcMapValue, FieldMap fieldMap, Object destObj) { Map result; Map destinationMap = (Map) fieldMap.getDestValue(destObj); if (destinationMap == null) { result = DestBeanCreator.create(srcMapValue.getClass()); } else { result = destinationMap; if (fieldMap.isRemoveOrphans()) { result.clear(); } } for (Entry<?, Object> srcEntry : ((Map<?, Object>) srcMapValue).entrySet()) { Object srcEntryValue = srcEntry.getValue(); if (srcEntryValue == null) { // overwrites with null in any case result.put(srcEntry.getKey(), null); continue; } Object destEntryValue = mapOrRecurseObject(srcObj, srcEntryValue, srcEntryValue.getClass(), fieldMap, destObj); Object obj = result.get(srcEntry.getKey()); if (obj != null && obj.equals(destEntryValue) && fieldMap.isNonCumulativeRelationship()) { mapToDestObject(null, srcEntryValue, obj, false, null); } else { result.put(srcEntry.getKey(), destEntryValue); } } return result; }
private Object mapMap(Object srcObj, Map srcMapValue, FieldMap fieldMap, Object destObj, MappingContext context) { Map result; Map destinationMap = (Map) fieldMap.getDestValue(destObj); if (destinationMap == null) { result = DestBeanCreator.create(context.getParams(), srcMapValue.getClass()); } else { result = destinationMap; if (fieldMap.isRemoveOrphans()) { result.clear(); } } for (Entry<?, Object> srcEntry : ((Map<?, Object>) srcMapValue).entrySet()) { Object srcEntryValue = srcEntry.getValue(); if (srcEntryValue == null) { // overwrites with null in any case result.put(srcEntry.getKey(), null); continue; } Object destEntryValue = mapOrRecurseObject(srcObj, srcEntryValue, srcEntryValue.getClass(), destObj, fieldMap, context); Object obj = result.get(srcEntry.getKey()); if (obj != null && obj.equals(destEntryValue) && fieldMap.isNonCumulativeRelationship()) { map(null, srcEntryValue, obj, false, null, context); } else { result.put(srcEntry.getKey(), destEntryValue); } } return result; }
result = DestBeanCreator.create(context.getParams(), srcMapValue.getClass()); } else { result = destinationMap;
public static Object create(MappingParameters params, BeanCreationDirective directive) { // TODO create method lookup by annotation/convention // TODO Cache ConstructionStrategy (reuse caching infrastructure) // TODO Resolve JAXB by XmlType Annotation // TODO Check resulting type in each method // TODO Directive toString() // TODO review and document for (BeanCreationStrategy strategy : availableStrategies) { if (strategy.isApplicable(directive)) { return strategy.create(params, directive); } } return null; }
public static Object create(MappingParameters params, BeanCreationDirective directive) { // TODO create method lookup by annotation/convention // TODO Cache ConstructionStrategy (reuse caching infrastructure) // TODO Resolve JAXB by XmlType Annotation // TODO Check resulting type in each method // TODO Directive toString() // TODO review and document for (BeanCreationStrategy strategy : availableStrategies) { if (strategy.isApplicable(directive)) { return strategy.create(params, directive); } } return null; }
public void setPropertyValue(Object bean, Object value, FieldMap fieldMap) { Object intermediateResult = bean; for (int i = 0; i < descriptorChain.length; i++) { DozerPropertyDescriptor descriptor = descriptorChain[i]; if (i != descriptorChain.length - 1) { Object currentValue = descriptor.getPropertyValue(intermediateResult); if (currentValue == null) { currentValue = DestBeanCreator.create(descriptor.getPropertyType()); descriptor.setPropertyValue(intermediateResult, currentValue, fieldMap); } intermediateResult = currentValue; } else { // last one descriptor.setPropertyValue(intermediateResult, value, fieldMap); } } }
public void setPropertyValue(Object bean, Object value, FieldMap fieldMap) { Object intermediateResult = bean; for (int i = 0; i < descriptorChain.length; i++) { DozerPropertyDescriptor descriptor = descriptorChain[i]; if (i != descriptorChain.length - 1) { Object currentValue = descriptor.getPropertyValue(intermediateResult); if (currentValue == null) { currentValue = DestBeanCreator.create(null, descriptor.getPropertyType()); descriptor.setPropertyValue(intermediateResult, currentValue, fieldMap); } intermediateResult = currentValue; } else { // last one descriptor.setPropertyValue(intermediateResult, value, fieldMap); } } }
public void setPropertyValue(Object bean, Object value, FieldMap fieldMap) { Object intermediateResult = bean; for (int i = 0; i < descriptorChain.length; i++) { DozerPropertyDescriptor descriptor = descriptorChain[i]; if (i != descriptorChain.length - 1) { Object currentValue = descriptor.getPropertyValue(intermediateResult); if (currentValue == null) { currentValue = DestBeanCreator.create(null, descriptor.getPropertyType()); descriptor.setPropertyValue(intermediateResult, currentValue, fieldMap); } intermediateResult = currentValue; } else { // last one descriptor.setPropertyValue(intermediateResult, value, fieldMap); } } }
o = MappingUtils.prepareIndexedCollection(clazz, null, DestBeanCreator.create(clazz.getComponentType()), hierarchyElement.getIndex()); } else if (Collection.class.isAssignableFrom(clazz)) { o = MappingUtils.prepareIndexedCollection(clazz, null, DestBeanCreator.create(collectionEntryType), hierarchyElement .getIndex()); } else { try { o = DestBeanCreator.create(clazz); } catch (Exception e) { o = DestBeanCreator.create(new BeanCreationDirective(null, fieldMap.getClassMap().getSrcClassToMap(), clazz, clazz, fieldMap.getClassMap() .getDestClassBeanFactory(), fieldMap.getClassMap().getDestClassBeanFactoryId(), null)); } else { value = MappingUtils.prepareIndexedCollection(pd.getPropertyType(), value, DestBeanCreator.create(collectionEntryType), hierarchyElement.getIndex());
/** * Create builder or target object if needed and call * {@link MappingProcessor#mapToDestObject(org.dozer.classmap.ClassMap, Object, Object, boolean, String)} function with * arguments {@code classMap}, {@code srcObj}, {@code result}, {@code bypassSuperMappings}, {@code mapId} * @param creationDirective directive for concrete mapping (based mostly on {@code classMap}) * @param classMap class map information for concrete class * @param srcObj source object * @param result target entity for mapping * @param bypassSuperMappings //TODO * @param mapId mapping identifier * @return result or created target entity for mapping */ private <T> T createByCreationDirectiveAndMap(BeanCreationDirective creationDirective, ClassMap classMap, Object srcObj, T result, boolean bypassSuperMappings, String mapId) { if (result == null) { BeanBuilder beanBuilder = DestBeanBuilderCreator.create(creationDirective); if (beanBuilder == null) { result = (T) DestBeanCreator.create(creationDirective); mapToDestObject(classMap, srcObj, result, bypassSuperMappings, mapId); } else { mapToDestObject(classMap, srcObj, beanBuilder, bypassSuperMappings, mapId); result = (T) beanBuilder.build(); } } else { mapToDestObject(classMap, srcObj, result, bypassSuperMappings, mapId); } return result; }
o = MappingUtils.prepareIndexedCollection(clazz, null, DestBeanCreator.create(null, clazz .getComponentType()), collectionIndex); .create(null, collectionEntryType), collectionIndex); o = DestBeanCreator.create(null, clazz); } catch (Exception e) { o = DestBeanCreator.create(null, new BeanCreationDirective(null, fieldMap.getClassMap() .getSrcClassToMap(), clazz, clazz, fieldMap.getClassMap().getDestClassBeanFactory(), fieldMap.getClassMap().getDestClassBeanFactoryId(), null)); value = MappingUtils.prepareIndexedCollection(pd.getPropertyType(), value, DestBeanCreator.create(null, componentType), collectionIndex);
o = MappingUtils.prepareIndexedCollection(clazz, null, DestBeanCreator.create(null, clazz.getComponentType()), collectionIndex); DestBeanCreator.create(null, collectionEntryType), collectionIndex); o = DestBeanCreator.create(null, clazz); } catch (Exception e) { o = DestBeanCreator.create(null, new BeanCreationDirective(null, fieldMap.getClassMap().getSrcClassToMap(), DestBeanCreator.create(null, componentType), collectionIndex);