1 16 package net.sf.dozer.util.mapping.util; 17 18 import java.lang.reflect.Array ; 19 import java.util.ArrayList ; 20 import java.util.Collection ; 21 import java.util.HashSet ; 22 import java.util.Iterator ; 23 import java.util.List ; 24 import java.util.Set ; 25 import java.util.SortedSet ; 26 import java.util.TreeSet ; 27 28 32 public class CollectionUtils { 33 34 public boolean isArray(Class aClass) { 35 return aClass.isArray(); 36 } 37 38 public boolean isCollection(Class aClass) { 39 return Collection .class.isAssignableFrom(aClass); 40 } 41 42 public boolean isIterator(Class aClass) { 43 return Iterator .class.isAssignableFrom(aClass); 44 } 45 46 public boolean isList(Class aClass) { 47 return List .class.isAssignableFrom(aClass); 48 } 49 50 public boolean isSet(Class aClass) { 51 return Set .class.isAssignableFrom(aClass); 52 } 53 54 public boolean isPrimitiveArray(Class aClass) { 55 return aClass.isArray() && aClass.getComponentType().isPrimitive(); 56 } 57 58 public int getLengthOfCollection(Object value) { 59 if (isArray(value.getClass())) { 60 return Array.getLength(value); 61 } else { 62 return ((Collection ) value).size(); 63 } 64 } 65 66 public Object getValueFromCollection(Object collection, int index) { 67 if (isArray(collection.getClass())) { 68 return Array.get(collection, index); 69 } else 70 { 72 Collection collectionTo = (Collection ) collection; 73 74 return collectionTo.toArray()[index]; 75 } 76 } 77 78 public Set createNewSet(Class destType) { 79 return createNewSet(destType, null); 80 } 81 82 public Set createNewSet(Class destType, Collection srcValue) { 83 Set result = null; 84 if (SortedSet .class.isAssignableFrom(destType)) { 85 result = new TreeSet (); 86 } else { 87 result = new HashSet (); 88 } 89 if (srcValue != null) { 90 result.addAll(srcValue); 91 } 92 return result; 93 } 94 95 public Object convertListToArray(List list, Class destEntryType) { 96 Object outArray = Array.newInstance(destEntryType, list.size()); 97 int count = 0; 98 int size = list.size(); 99 for (int i = 0; i < size; i++) { 100 Object element = list.get(i); 101 Array.set(outArray, count, element); 102 count++; 103 } 104 return outArray; 105 } 106 107 public List convertPrimitiveArrayToList(Object primitiveArray) { 108 int length = Array.getLength(primitiveArray); 109 List result = new ArrayList (length); 110 111 for (int i = 0; i < length; i++) { 113 result.add(Array.get(primitiveArray, i)); 114 } 115 return result; 116 } 117 118 } | Popular Tags |