/** * Special case of {@link #convertType(Object, Class)} when target is collection and * when component type is known. */ @SuppressWarnings("unchecked") public <T> Collection<T> convertToCollection(Object value, Class<? extends Collection> destinationType, Class componentType) { if (value == null) { return null; } // check same instances if (ReflectUtil.isInstanceOf(value, destinationType)) { return (Collection<T>) value; } if (componentType == null) { componentType = Object.class; } CollectionConverter collectionConverter = new CollectionConverter(destinationType, componentType); return collectionConverter.convert(value); }
public Collection<T> convert(Object value) { if (value == null) { return null; } if (!(value instanceof Collection)) { // source is not an array return convertValueToCollection(value); } // source is a collection return convertCollectionToCollection((Collection)value); }
if (value instanceof Iterable) { Iterable iterable = (Iterable) value; Collection<T> collection = createCollection(0); collection.add(convertType(element)); return convertPrimitiveArrayToCollection(value, componentType); } else { Object[] array = (Object[]) value; Collection<T> result = createCollection(array.length); for (Object a : array) { result.add(convertType(a)); return convertToSingleElementCollection(value);
/** * Converts collection value to target collection. * Each element is converted to target component type. */ protected Collection<T> convertCollectionToCollection(Collection value) { Collection<T> collection = createCollection(value.size()); for (Object v : value) { collection.add(convertType(v)); } return collection; }
/** * Creates a collection with single element. */ protected Collection<T> convertToSingleElementCollection(Object value) { Collection<T> collection = createCollection(0); collection.add((T) value); return collection; }
/** * Converts collection value to target collection. * Each element is converted to target component type. */ protected Collection<T> convertCollectionToCollection(final Collection value) { Collection<T> collection = createCollection(value.size()); for (Object v : value) { collection.add(convertType(v)); } return collection; }
/** * Creates a collection with single element. */ protected Collection<T> convertToSingleElementCollection(final Object value) { Collection<T> collection = createCollection(0); //noinspection unchecked collection.add((T) value); return collection; }
/** * Special case of {@link #convertType(Object, Class)} when target is collection and * when component type is known. */ @SuppressWarnings("unchecked") public <C extends Collection<T>, T> C convertToCollection(final Object value, final Class<? extends Collection> destinationType, final Class<T> componentType) { if (value == null) { return null; } // check same instances if (ClassUtil.isInstanceOf(value, destinationType)) { return (C) value; } final CollectionConverter collectionConverter; if (componentType == null) { collectionConverter = new CollectionConverter(destinationType, Object.class); } else { collectionConverter = new CollectionConverter(destinationType, componentType); } return (C) collectionConverter.convert(value); }
if (value instanceof Iterable) { Iterable iterable = (Iterable) value; Collection<T> collection = createCollection(0); collection.add(convertType(element)); return convertPrimitiveArrayToCollection(value, componentType); } else { Object[] array = (Object[]) value; Collection<T> result = createCollection(array.length); for (Object a : array) { result.add(convertType(a)); return convertToSingleElementCollection(value);
result = createCollection(array.length); for (int a : array) { result.add(convertType(a)); result = createCollection(array.length); for (long a : array) { result.add(convertType(a)); result = createCollection(array.length); for (float a : array) { result.add(convertType(a)); result = createCollection(array.length); for (double a : array) { result.add(convertType(a)); result = createCollection(array.length); for (short a : array) { result.add(convertType(a)); result = createCollection(array.length); for (byte a : array) { result.add(convertType(a)); result = createCollection(array.length); for (char a : array) { result.add(convertType(a)); result = createCollection(array.length);
@Override public Collection<T> convert(final Object value) { if (value == null) { return null; } if (!(value instanceof Collection)) { // source is not an array return convertValueToCollection(value); } // source is a collection return convertCollectionToCollection((Collection)value); }
/** * Creates a collection with single element. */ protected Collection<T> convertToSingleElementCollection(final Object value) { Collection<T> collection = createCollection(0); //noinspection unchecked collection.add((T) value); return collection; }
new CollectionConverter(this, destinationType, Object.class); return (T) collectionConverter.convert(value);
if (value instanceof Iterable) { Iterable iterable = (Iterable) value; Collection<T> collection = createCollection(0); collection.add(convertType(element)); return convertPrimitiveArrayToCollection(value, componentType); } else { Object[] array = (Object[]) value; Collection<T> result = createCollection(array.length); for (Object a : array) { result.add(convertType(a)); return convertToSingleElementCollection(value);
result = createCollection(array.length); for (int a : array) { result.add(convertType(a)); result = createCollection(array.length); for (long a : array) { result.add(convertType(a)); result = createCollection(array.length); for (float a : array) { result.add(convertType(a)); result = createCollection(array.length); for (double a : array) { result.add(convertType(a)); result = createCollection(array.length); for (short a : array) { result.add(convertType(a)); result = createCollection(array.length); for (byte a : array) { result.add(convertType(a)); result = createCollection(array.length); for (char a : array) { result.add(convertType(a)); result = createCollection(array.length);
@Override public Collection<T> convert(final Object value) { if (value == null) { return null; } if (!(value instanceof Collection)) { // source is not an array return convertValueToCollection(value); } // source is a collection return convertCollectionToCollection((Collection)value); }
new CollectionConverter(this, destinationType, Object.class); return (T) collectionConverter.convert(value);
/** * Converts collection value to target collection. * Each element is converted to target component type. */ protected Collection<T> convertCollectionToCollection(final Collection value) { Collection<T> collection = createCollection(value.size()); for (Object v : value) { collection.add(convertType(v)); } return collection; }
@Test void testCollectionsWithComponentType() { TypeConverterManager typeConverterManager = TypeConverterManager.get(); CollectionConverter cc = new CollectionConverter(typeConverterManager, List.class, String.class); List<String> list1 = (List<String>) cc.convert(arri(1, 2, 3)); assertNotEquals(listo(1, 2, 3), list1); assertEquals(listo("1", "2", "3"), list1); list1 = (List<String>) cc.convert("1,2,3"); assertEquals(listo("1","2","3"), list1); cc = new CollectionConverter(typeConverterManager, List.class, Integer.class); list1 = (List<String>) cc.convert("1,2,3"); assertEquals(listo(1, 2, 3), list1); }
result = createCollection(array.length); for (int a : array) { result.add(convertType(a)); result = createCollection(array.length); for (long a : array) { result.add(convertType(a)); result = createCollection(array.length); for (float a : array) { result.add(convertType(a)); result = createCollection(array.length); for (double a : array) { result.add(convertType(a)); result = createCollection(array.length); for (short a : array) { result.add(convertType(a)); result = createCollection(array.length); for (byte a : array) { result.add(convertType(a)); result = createCollection(array.length); for (char a : array) { result.add(convertType(a)); result = createCollection(array.length);