public Class<?> getSourceClass() { return classMap.getSrcClassToMap(); }
public boolean apply(ClassMap classMap, Configuration configuration) { Class<?> srcType = classMap.getSrcClassToMap(); do { for (Field field : srcType.getDeclaredFields()) { Mapping mapping = field.getAnnotation(Mapping.class); String fieldName = field.getName(); if (mapping != null) { String pairName = mapping.value().trim(); addFieldMapping(classMap, configuration, fieldName, pairName.isEmpty() ? fieldName : pairName); } } srcType = srcType.getSuperclass(); } while (srcType != null); Class<?> destType = classMap.getDestClassToMap(); do { for (Field field : destType.getDeclaredFields()) { Mapping mapping = field.getAnnotation(Mapping.class); String fieldName = field.getName(); if (mapping != null) { String pairName = mapping.value().trim(); addFieldMapping(classMap, configuration, pairName.isEmpty() ? fieldName : pairName, fieldName); } } destType = destType.getSuperclass(); } while (destType != null); return false; } }
public boolean apply(ClassMap classMap, Configuration configuration) { Class<?> srcType = classMap.getSrcClassToMap(); Field[] srcFields = srcType.getDeclaredFields(); for (Field field : srcFields) { Mapping mapping = field.getAnnotation(Mapping.class); String fieldName = field.getName(); if (mapping != null) { validate(mapping, field); String pairName = mapping.value(); addFieldMapping(classMap, configuration, fieldName, pairName); } } Class<?> destType = classMap.getDestClassToMap(); Field[] destFields = destType.getDeclaredFields(); for (Field field : destFields) { Mapping mapping = field.getAnnotation(Mapping.class); String fieldName = field.getName(); if (mapping != null) { validate(mapping, field); String pairName = mapping.value(); addFieldMapping(classMap, configuration, pairName, fieldName); } } return false; } }
public boolean accepts(ClassMap classMap) { Class<?> srcClass = classMap.getSrcClassToMap(); Class<?> destClass = classMap.getDestClassToMap(); return MappingUtils.isSupportedCollection(srcClass) && MappingUtils.isSupportedCollection(destClass); }
public boolean accepts(ClassMap classMap) { Class<?> srcClass = classMap.getSrcClassToMap(); Class<?> destClass = classMap.getDestClassToMap(); return MappingUtils.isSupportedCollection(srcClass) && MappingUtils.isSupportedCollection(destClass); }
public ClassMap find(Class<?> srcClass, Class<?> destClass, String mapId) { final String key = keyFactory.createKey(srcClass, destClass, mapId); ClassMap mapping = classMappings.get(key); if (mapping == null) { mapping = findInterfaceMapping(destClass, srcClass, mapId); } // one more try... // if the mapId is not null looking up a map is easy if (!MappingUtils.isBlankOrNull(mapId) && mapping == null) { // probably a more efficient way to do this... for (Entry<String, ClassMap> entry : classMappings.entrySet()) { ClassMap classMap = entry.getValue(); if (StringUtils.equals(classMap.getMapId(), mapId) && classMap.getSrcClassToMap().isAssignableFrom(srcClass) && classMap.getDestClassToMap().isAssignableFrom(destClass)) { return classMap; } else if (StringUtils.equals(classMap.getMapId(), mapId) && srcClass.equals(destClass)) { return classMap; } } // If map-id was specified and mapping was not found, then fail MappingUtils.throwMappingException("Class mapping not found by map-id: " + key); } return mapping; }
public boolean apply(ClassMap classMap, Configuration configuration) { Class<?> srcType = classMap.getSrcClassToMap(); PropertyDescriptor[] srcProperties = ReflectionUtils.getPropertyDescriptors(srcType); for (PropertyDescriptor property : srcProperties) { Method readMethod = property.getReadMethod(); if (readMethod != null) { Mapping mapping = readMethod.getAnnotation(Mapping.class); String propertyName = property.getName(); if (mapping != null) { String pairName = mapping.value().trim(); GeneratorUtils.addGenericMapping(classMap, configuration, propertyName, pairName.isEmpty() ? propertyName : pairName); } } } Class<?> destType = classMap.getDestClassToMap(); PropertyDescriptor[] destProperties = ReflectionUtils.getPropertyDescriptors(destType); for (PropertyDescriptor property : destProperties) { Method readMethod = property.getReadMethod(); if (readMethod != null) { Mapping mapping = readMethod.getAnnotation(Mapping.class); String propertyName = property.getName(); if (mapping != null) { String pairName = mapping.value().trim(); GeneratorUtils.addGenericMapping(classMap, configuration, pairName.isEmpty() ? propertyName : pairName, propertyName); } } } return false; } }
public ClassMap find(Class<?> srcClass, Class<?> destClass, String mapId) { final String key = keyFactory.createKey(srcClass, destClass, mapId); ClassMap mapping = classMappings.get(key); if (mapping == null) { mapping = findInterfaceMapping(destClass, srcClass, mapId); } // one more try... // if the mapId is not null looking up a map is easy if (!MappingUtils.isBlankOrNull(mapId) && mapping == null) { // probably a more efficient way to do this... for (Entry<String, ClassMap> entry : classMappings.entrySet()) { ClassMap classMap = entry.getValue(); if (StringUtils.equals(classMap.getMapId(), mapId) && classMap.getSrcClassToMap() .isAssignableFrom(srcClass) && classMap.getDestClassToMap().isAssignableFrom(destClass)) { return classMap; } else if (StringUtils.equals(classMap.getMapId(), mapId) && srcClass.equals(destClass)) { return classMap; } } // If map-id was specified and mapping was not found, then fail MappingUtils.throwMappingException("Class mapping not found by map-id: " + key); } return mapping; }
public boolean apply(ClassMap classMap, Configuration configuration) { Class<?> srcType = classMap.getSrcClassToMap(); PropertyDescriptor[] srcProperties = ReflectionUtils.getPropertyDescriptors(srcType); for (PropertyDescriptor property : srcProperties) {
private ClassMap findInterfaceMapping(Class<?> destClass, Class<?> srcClass, String mapId) { // Use object array for keys to avoid any rare thread synchronization issues // while iterating over the custom mappings. // See bug #1550275. Object[] keys = classMappings.keySet().toArray(); for (Object key : keys) { ClassMap map = classMappings.get(key); Class<?> mappingDestClass = map.getDestClassToMap(); Class<?> mappingSrcClass = map.getSrcClassToMap(); if ((mapId == null && map.getMapId() != null) || (mapId != null && !mapId.equals(map.getMapId()))) { continue; } if (isInterfaceImplementation(srcClass, mappingSrcClass)) { if (isInterfaceImplementation(destClass, mappingDestClass)) { return map; } else if (destClass.equals(mappingDestClass)) { return map; } } // Destination could be an abstract type. Picking up the best concrete type to use. if ((destClass.isAssignableFrom(mappingDestClass) && isAbstract(destClass)) || (isInterfaceImplementation(destClass, mappingDestClass))) { if (MappingUtils.getRealClass(srcClass).equals(mappingSrcClass)) { return map; } } } return null; }
ClassMap map = classMappings.get(key); Class<?> mappingDestClass = map.getDestClassToMap(); Class<?> mappingSrcClass = map.getSrcClassToMap();
public boolean apply(ClassMap classMap, Configuration configuration) { Class<?> srcClass = classMap.getSrcClassToMap(); Class<?> destClass = classMap.getDestClassToMap(); PropertyDescriptor[] destProperties = ReflectionUtils.getPropertyDescriptors(destClass); for (PropertyDescriptor destPropertyDescriptor : destProperties) { String fieldName = destPropertyDescriptor.getName(); if (shouldIgnoreField(fieldName, srcClass, destClass)) { continue; } // If field has already been accounted for, then skip if (classMap.getFieldMapUsingDest(fieldName) != null || classMap .getFieldMapUsingSrc(fieldName) != null) { continue; } // If destination field does not have a write method, then skip if (destPropertyDescriptor.getWriteMethod() == null) { continue; } PropertyDescriptor srcProperty = ReflectionUtils.findPropertyDescriptor(srcClass, fieldName, null); // If the sourceProperty is null we know that there is not a // corresponding property to map to. // If source property does not have a read method, then skip if (srcProperty == null || srcProperty.getReadMethod() == null) { continue; } addGenericMapping(classMap, configuration, fieldName, fieldName); } return false; }
public boolean accepts(ClassMap classMap) { Class<?> srcClass = classMap.getSrcClassToMap(); Class<?> destClass = classMap.getDestClassToMap(); return MappingUtils.isSupportedMap(srcClass) || classMap.getSrcClassMapGetMethod() != null || MappingUtils .isSupportedMap(destClass) || classMap.getDestClassMapGetMethod() != null; }
public boolean accepts(ClassMap classMap) { Class<?> srcClass = classMap.getSrcClassToMap(); Class<?> destClass = classMap.getDestClassToMap(); return MappingUtils.isSupportedMap(srcClass) || classMap.getSrcClassMapGetMethod() != null || MappingUtils.isSupportedMap(destClass) || classMap.getDestClassMapGetMethod() != null; }
new BeanCreationDirective(srcObj, classMap.getSrcClassToMap(), classMap.getDestClassToMap(), destType, classMap.getDestClassBeanFactory(), classMap.getDestClassBeanFactoryId(), classMap.getDestClassCreateMethod());
public boolean apply(ClassMap classMap, Configuration configuration) { Class<?> srcClass = classMap.getSrcClassToMap(); Class<?> destClass = classMap.getDestClassToMap(); Set<String> destFieldNames = getAcceptsFieldsDetector(destClass).getWritableFieldNames(destClass); Set<String> srcFieldNames = getAcceptsFieldsDetector(srcClass).getReadableFieldNames(srcClass); Set<String> commonFieldNames = CollectionUtils.intersection(srcFieldNames, destFieldNames); for (String fieldName : commonFieldNames) { if (GeneratorUtils.shouldIgnoreField(fieldName, srcClass, destClass)) { continue; } // If field has already been accounted for, then skip if (classMap.getFieldMapUsingDest(fieldName) != null || classMap.getFieldMapUsingSrc(fieldName) != null) { continue; } GeneratorUtils.addGenericMapping(classMap, configuration, fieldName, fieldName); } return false; }
BeanCreationDirective creationDirective = new BeanCreationDirective(srcFieldValue, classMap.getSrcClassToMap(), classMap.getDestClassToMap(), destFieldType, classMap.getDestClassBeanFactory(), classMap.getDestClassBeanFactoryId(), fieldMap.getDestFieldCreateMethod() != null ? fieldMap.getDestFieldCreateMethod() : classMap.getDestClassCreateMethod());
public boolean apply(ClassMap classMap, Configuration configuration) { Class<?> srcClass = classMap.getSrcClassToMap(); Class<?> destClass = classMap.getDestClassToMap(); PropertyDescriptor[] properties;
result = DestBeanCreator.create(context.getParams(), new BeanCreationDirective(srcFieldValue, classMap.getSrcClassToMap(), classMap.getDestClassToMap(), destFieldType, classMap.getDestClassBeanFactory(), classMap .getDestClassBeanFactoryId(), fieldMap.getDestFieldCreateMethod() != null ? fieldMap
public static void reverseFields(ClassMap source, ClassMap destination) { // reverse the fields destination.setSrcClass(new DozerClass(source.getDestClassName(), source.getDestClassToMap(), source.getDestClassBeanFactory(), source.getDestClassBeanFactoryId(), source.getDestClassMapGetMethod(), source.getDestClassMapSetMethod(), source.getDestClass().getCreateMethod(), source.isDestMapNull(), source.isDestMapEmptyString(), source.getDestClass().isAccesible())); destination.setDestClass(new DozerClass(source.getSrcClassName(), source.getSrcClassToMap(), source.getSrcClassBeanFactory(), source.getSrcClassBeanFactoryId(), source.getSrcClassMapGetMethod(), source.getSrcClassMapSetMethod(), source.getSrcClass().getCreateMethod(), source.isSrcMapNull(), source.isSrcMapEmptyString(), source.getSrcClass().isAccesible())); destination.setType(source.getType()); destination.setWildcard(source.isWildcard()); destination.setTrimStrings(source.isTrimStrings()); destination.setDateFormat(source.getDateFormat()); destination.setRelationshipType(source.getRelationshipType()); destination.setStopOnErrors(source.isStopOnErrors()); destination.setAllowedExceptions(source.getAllowedExceptions()); destination.setSrcClassCreateMethod(source.getDestClassCreateMethod()); destination.setDestClassCreateMethod(source.getSrcClassCreateMethod()); if (StringUtils.isNotEmpty(source.getMapId())) { destination.setMapId(source.getMapId()); } }