private Object mergeArray(ClassGetter classGetter, Object array, Object previous, Object owner, String propertyName) { if (log.isDebugEnabled()) log.debug("Context mergeArray: " + array + (previous != null ? " previous " + previous.getClass().getName() : "")); Object key = CacheKey.key(array, owner, propertyName); int length = Array.getLength(array); Object prevArray = ArrayUtil.newArray(ArrayUtil.getComponentType(array.getClass()), length); DataMergeContext.getCache().put(key, prevArray); for (int i = 0; i < length; i++) { Object obj = Array.get(array, i); Array.set(prevArray, i, mergeExternal(classGetter, obj, null, null, null)); } return prevArray; }
@Override protected boolean internalCanConvert(Object value, Type targetType) { Type targetComponentType = ArrayUtil.getComponentType(targetType); if (targetComponentType == null) return false; // not an array. if (value == null) return true; if (!value.getClass().isArray()) return false; Class<?> oComponentClass = value.getClass().getComponentType(); if (targetComponentType.equals(oComponentClass)) return true; Converter itemConverter = null; final int length = Array.getLength(value); for (int i = 0; i < length; i++) { Object item = Array.get(value, i); if (itemConverter == null) itemConverter = converters.getConverter(item, targetComponentType); else if (!itemConverter.canConvert(item, targetComponentType)) itemConverter = converters.getConverter(item, targetComponentType); if (itemConverter == null) return false; } return true; }
@Override protected boolean internalCanConvert(Object value, Type targetType) { Type targetComponentType = ArrayUtil.getComponentType(targetType); if (targetComponentType == null) return false; // not an array. if (value == null) return true; if (!value.getClass().isArray()) return false; Class<?> oComponentClass = value.getClass().getComponentType(); if (targetComponentType.equals(oComponentClass)) return true; Converter itemConverter = null; final int length = Array.getLength(value); for (int i = 0; i < length; i++) { Object item = Array.get(value, i); if (itemConverter == null) itemConverter = converters.getConverter(item, targetComponentType); else if (!itemConverter.canConvert(item, targetComponentType)) itemConverter = converters.getConverter(item, targetComponentType); if (itemConverter == null) return false; } return true; }
Type targetComponentType = ArrayUtil.getComponentType(targetType); if (targetComponentType != null) { Class<?> oComponentClass = value.getClass().getComponentType(); final Object array = ArrayUtil.newArray(targetComponentType, length); for (int i = 0; i < length; i++) { Object item = Array.get(value, i);
@Override protected boolean internalCanConvert(Object value, Type targetType) { Type targetComponentType = ArrayUtil.getComponentType(targetType); if (targetComponentType == null) return false; // not an array. if (value == null) return true; if (!value.getClass().isArray()) return false; Class<?> oComponentClass = value.getClass().getComponentType(); if (targetComponentType.equals(oComponentClass)) return true; Converter itemConverter = null; final int length = Array.getLength(value); for (int i = 0; i < length; i++) { Object item = Array.get(value, i); if (itemConverter == null) itemConverter = converters.getConverter(item, targetComponentType); else if (!itemConverter.canConvert(item, targetComponentType)) itemConverter = converters.getConverter(item, targetComponentType); if (itemConverter == null) return false; } return true; }
Type targetComponentType = ArrayUtil.getComponentType(targetType); if (targetComponentType != null) { Class<?> oComponentClass = value.getClass().getComponentType(); final Object array = ArrayUtil.newArray(targetComponentType, length); for (int i = 0; i < length; i++) { Object item = Array.get(value, i);
@Override protected boolean internalCanConvert(Object value, Type targetType) { Type targetComponentType = ArrayUtil.getComponentType(targetType); if (targetComponentType == null) return false; // not an array. if (value == null) return true; if (!value.getClass().isArray()) return false; Class<?> oComponentClass = value.getClass().getComponentType(); if (targetComponentType.equals(oComponentClass)) return true; Converter itemConverter = null; final int length = Array.getLength(value); for (int i = 0; i < length; i++) { Object item = Array.get(value, i); if (itemConverter == null) itemConverter = converters.getConverter(item, targetComponentType); else if (!itemConverter.canConvert(item, targetComponentType)) itemConverter = converters.getConverter(item, targetComponentType); if (itemConverter == null) return false; } return true; }
Type targetComponentType = ArrayUtil.getComponentType(targetType); if (targetComponentType != null) { Class<?> oComponentClass = value.getClass().getComponentType(); final Object array = ArrayUtil.newArray(targetComponentType, length); for (int i = 0; i < length; i++) { Object item = Array.get(value, i);
@Override protected boolean internalCanConvert(Object value, Type targetType) { Type targetComponentType = ArrayUtil.getComponentType(targetType); if (targetComponentType == null) return false; // not an array. if (value == null) return true; if (!(value instanceof Collection<?>)) return false; if (targetComponentType.equals(Object.class)) return true; Converter itemConverter = null; for (Object item : (Collection<?>)value) { if (itemConverter == null) itemConverter = converters.getConverter(item, targetComponentType); else if (!itemConverter.canConvert(item, targetComponentType)) itemConverter = converters.getConverter(item, targetComponentType); if (itemConverter == null) return false; } return true; }
Type targetComponentType = ArrayUtil.getComponentType(targetType); if (targetComponentType != null) { Class<?> oComponentClass = value.getClass().getComponentType(); final Object array = ArrayUtil.newArray(targetComponentType, length); for (int i = 0; i < length; i++) { Object item = Array.get(value, i);
@Override protected boolean internalCanConvert(Object value, Type targetType) { Type targetComponentType = ArrayUtil.getComponentType(targetType); if (targetComponentType == null) return false; // not an array. if (value == null) return true; if (!(value instanceof Collection<?>)) return false; if (targetComponentType.equals(Object.class)) return true; Converter itemConverter = null; for (Object item : (Collection<?>)value) { if (itemConverter == null) itemConverter = converters.getConverter(item, targetComponentType); else if (!itemConverter.canConvert(item, targetComponentType)) itemConverter = converters.getConverter(item, targetComponentType); if (itemConverter == null) return false; } return true; }
Collection<?> c = (Collection<?>)value; Type targetComponentType = ArrayUtil.getComponentType(targetType); if (targetComponentType != null) { Converter itemConverter = null; final Object array = ArrayUtil.newArray(targetComponentType, c.size()); int i = 0; for (Object item : c) {
@Override protected boolean internalCanConvert(Object value, Type targetType) { Type targetComponentType = ArrayUtil.getComponentType(targetType); if (targetComponentType == null) return false; // not an array. if (value == null) return true; if (!(value instanceof Collection<?>)) return false; if (targetComponentType.equals(Object.class)) return true; Converter itemConverter = null; for (Object item : (Collection<?>)value) { if (itemConverter == null) itemConverter = converters.getConverter(item, targetComponentType); else if (!itemConverter.canConvert(item, targetComponentType)) itemConverter = converters.getConverter(item, targetComponentType); if (itemConverter == null) return false; } return true; }
Collection<?> c = (Collection<?>)value; Type targetComponentType = ArrayUtil.getComponentType(targetType); if (targetComponentType != null) { Converter itemConverter = null; final Object array = ArrayUtil.newArray(targetComponentType, c.size()); int i = 0; for (Object item : c) {
@Override protected boolean internalCanConvert(Object value, Type targetType) { Type targetComponentType = ArrayUtil.getComponentType(targetType); if (targetComponentType == null) return false; // not an array. if (value == null) return true; if (!(value instanceof Collection<?>)) return false; if (targetComponentType.equals(Object.class)) return true; Converter itemConverter = null; for (Object item : (Collection<?>)value) { if (itemConverter == null) itemConverter = converters.getConverter(item, targetComponentType); else if (!itemConverter.canConvert(item, targetComponentType)) itemConverter = converters.getConverter(item, targetComponentType); if (itemConverter == null) return false; } return true; }
Collection<?> c = (Collection<?>)value; Type targetComponentType = ArrayUtil.getComponentType(targetType); if (targetComponentType != null) { Converter itemConverter = null; final Object array = ArrayUtil.newArray(targetComponentType, c.size()); int i = 0; for (Object item : c) {
Collection<?> c = (Collection<?>)value; Type targetComponentType = ArrayUtil.getComponentType(targetType); if (targetComponentType != null) { Converter itemConverter = null; final Object array = ArrayUtil.newArray(targetComponentType, c.size()); int i = 0; for (Object item : c) {