private ClassMap getClassMap(Class<?> srcClass, Class<?> destClass, String mapId) { ClassMap mapping = classMappings.find(srcClass, destClass, mapId); if (mapping == null) { // If mapping not found in existing custom mapping collection, create // default as an explicit mapping must not // exist. The create default class map method will also add all default // mappings that it can determine. mapping = ClassMapBuilder.createDefaultClassMap(globalConfiguration, srcClass, destClass); classMappings.addDefault(srcClass, destClass, mapping); } return mapping; }
/** * Prepares default mappings based on provided mapping definition * * @param classMappings * @param globalConfiguration */ public static void addDefaultFieldMappings(ClassMappings classMappings, Configuration globalConfiguration) { Set<Entry<String, ClassMap>> entries = classMappings.getAll().entrySet(); for (Entry<String, ClassMap> entry : entries) { ClassMap classMap = entry.getValue(); generateMapping(classMap, globalConfiguration, runTimeGenerators); } }
ClassMapBuilder.addDefaultFieldMappings(customMappings, globalConfiguration);
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; }
ClassMapBuilder.addDefaultFieldMappings(customMappings, globalConfiguration);
String fieldName = property.getName(); if (shouldIgnoreField(fieldName, srcClass, destClass)) { continue;
mapping = ClassMapBuilder.createDefaultClassMap(globalConfiguration, srcClass, destClass); classMappings.addDefault(srcClass, destClass, mapping);
/** * Prepares default mappings based on provided mapping definition * * @param classMappings * @param globalConfiguration */ public static void addDefaultFieldMappings(ClassMappings classMappings, Configuration globalConfiguration) { Set<Entry<String, ClassMap>> entries = classMappings.getAll().entrySet(); for (Entry<String, ClassMap> entry : entries) { ClassMap classMap = entry.getValue(); generateMapping(classMap, globalConfiguration, runTimeGenerators); } }
mapping = ClassMapBuilder.createDefaultClassMap(globalConfiguration, srcClass, destClass); classMappings.addDefault(srcClass, destClass, mapping);
false)); generateMapping(classMap, globalConfiguration, buildTimeGenerators); return classMap;
/** * Builds new default mapping on-the-fly for previously unknown mapped class pairs. * * @param globalConfiguration * @param srcClass * @param destClass * @return */ public static ClassMap createDefaultClassMap(Configuration globalConfiguration, Class<?> srcClass, Class<?> destClass) { ClassMap classMap = new ClassMap(globalConfiguration); classMap.setSrcClass(new DozerClass(srcClass.getName(), srcClass, globalConfiguration.getBeanFactory(), null, null, null, null, globalConfiguration.getMapNull(), globalConfiguration.getMapEmptyString(), false)); classMap.setDestClass(new DozerClass(destClass.getName(), destClass, globalConfiguration.getBeanFactory(), null, null, null, null, globalConfiguration.getMapNull(), globalConfiguration.getMapEmptyString(), false)); generateMapping(classMap, globalConfiguration, buildTimeGenerators); return classMap; }