private Object addToPrimitiveArray(Object srcObj, FieldMap fieldMap, int size, Object srcCollectionValue, Object destObj, Class<?> destEntryType, MappingContext context) { Object result; Object field = fieldMap.getDestValue(destObj); int arraySize = 0; if (field == null) { result = Array.newInstance(destEntryType, size); } else { result = Array.newInstance(destEntryType, size + Array.getLength(field)); arraySize = Array.getLength(field); System.arraycopy(field, 0, result, 0, arraySize); } // primitive arrays are ALWAYS cumulative for (int i = 0; i < size; i++) { CopyByReferenceContainer copyByReferences = globalConfiguration.getCopyByReferences(); Object toValue; if (srcCollectionValue != null && copyByReferences.contains(srcCollectionValue.getClass())) { toValue = srcCollectionValue; } else { toValue = mapOrRecurseObject(srcObj, Array.get(srcCollectionValue, i), destEntryType, destObj, fieldMap, context); } Array.set(result, arraySize, toValue); arraySize++; } return result; }
private Object addToPrimitiveArray(Object srcObj, FieldMap fieldMap, int size, Object srcCollectionValue, Object destObj, Class<?> destEntryType) { Object result; Object field = fieldMap.getDestValue(destObj); int arraySize = 0; if (field == null) { result = Array.newInstance(destEntryType, size); } else { result = Array.newInstance(destEntryType, size + Array.getLength(field)); arraySize = Array.getLength(field); System.arraycopy(field, 0, result, 0, arraySize); } // primitive arrays are ALWAYS cumulative for (int i = 0; i < size; i++) { CopyByReferenceContainer copyByReferences = globalConfiguration.getCopyByReferences(); Object toValue; if (srcCollectionValue != null && copyByReferences.contains(srcCollectionValue.getClass())) { toValue = srcCollectionValue; } else { toValue = mapOrRecurseObject(srcObj, Array.get(srcCollectionValue, i), destEntryType, fieldMap, destObj); } Array.set(result, arraySize, toValue); arraySize++; } return result; }
toValue = srcCollectionValue; } else { toValue = mapOrRecurseObject(srcObj, Array.get(srcCollectionValue, i), destEntryType,
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; }
Object destEntryValue = mapOrRecurseObject(srcObj, srcEntryValue, srcEntryValue.getClass(),
destValue = srcValue; } else { destValue = mapOrRecurseObject(srcObj, srcValue, destEntryType, destObj, fieldMap, context);
destValue = srcValue; } else { destValue = mapOrRecurseObject(srcObj, srcValue, destEntryType, destObj, fieldMap, context);
destValue = srcValue; } else { destValue = mapOrRecurseObject(srcObj, srcValue, destEntryType, fieldMap, destObj);
destValue = srcValue; } else { destValue = mapOrRecurseObject(srcObj, srcValue, destEntryType, destObj, fieldMap, context);
destValue = srcValue; } else { destValue = mapOrRecurseObject(srcObj, srcValue, destEntryType, destObj, fieldMap, context);
destValue = srcValue; } else { destValue = mapOrRecurseObject(srcObj, srcValue, destEntryType, fieldMap, destObj);
private void mapFromIterateMethodFieldMap(Object srcObj, Object destObj, Object srcFieldValue, FieldMap fieldMapping) { // Iterate over the destFieldValue - iterating is fine unless we are mapping // in the other direction. // Verify that it is truly a collection if it is an iterator object turn it // into a List if (srcFieldValue instanceof Iterator) { srcFieldValue = IteratorUtils.toList((Iterator<?>) srcFieldValue); } if (srcFieldValue != null) { for (int i = 0; i < CollectionUtils.getLengthOfCollection(srcFieldValue); i++) { final Object value = CollectionUtils.getValueFromCollection(srcFieldValue, i); // map this value if (fieldMapping.getDestHintContainer() == null) { MappingUtils.throwMappingException("<field type=\"iterate\"> must have a source or destination type hint"); } Class<?> destinationHint = fieldMapping.getDestHintType(value.getClass()); Object result = mapOrRecurseObject(srcObj, value, destinationHint, fieldMapping, destObj); if (value != null) { writeDestinationValue(destObj, result, fieldMapping, srcObj); } } } if (log.isDebugEnabled()) { log.debug(logMsgFactory.createFieldMappingSuccessMsg(srcObj.getClass(), destObj.getClass(), fieldMapping.getSrcFieldName(), fieldMapping.getDestFieldName(), srcFieldValue, null, fieldMapping.getClassMap().getMapId())); } }
destFieldValue = mapOrRecurseObject(srcObj, srcFieldValue, destFieldType, fieldMapping, destObj); } else { Class<?> srcFieldClass = srcFieldValue != null ? srcFieldValue.getClass() : fieldMapping.getSrcFieldType(srcObj.getClass());
MappingUtils.throwMappingException("Custom converter should be provided"); destFieldValue = mapOrRecurseObject(srcObj, srcFieldValue, destFieldType, destObj, fieldMapping, context); } else { Class<?> srcFieldClass = srcFieldValue != null ? srcFieldValue.getClass() : fieldMapping
MappingUtils.throwMappingException("Custom converter should be provided"); destFieldValue = mapOrRecurseObject(srcObj, srcFieldValue, destFieldType, destObj, fieldMapping, context); } else { Class<?> srcFieldClass = srcFieldValue != null ? srcFieldValue.getClass()