public Iterator <?> getIterator(Object obj, JexlInfo info) { if (obj instanceof Iterator <?> ) { return((Iterator <?>)obj); } if (obj.getClass().isArray()) { return(new ArrayIterator(obj)); } if (obj instanceof Map <?, ?> ) { return(((Map <?, ?>)obj).values().iterator()); } if (obj instanceof Enumeration <?> ) { return(new EnumerationIterator <Object>((Enumeration <Object>)obj)); } if (obj instanceof Iterable <?> ) { return(((Iterable <?>)obj).iterator()); } try { // look for an iterator() method to support the JDK5 Iterable // interface or any user tools/DTOs that want to work in // foreach without implementing the Collection interface AbstractExecutor.Method it = getMethodExecutor(obj, "iterator", null); if (it != null && Iterator.class.isAssignableFrom(it.getReturnType()))
public Iterator<?> getIterator(Object obj, JexlInfo info) { if (obj instanceof Iterator<?>) { return ((Iterator <?>) obj); } if (obj.getClass().isArray()) { return new ArrayIterator(obj); } if (obj instanceof Map<?, ?>) { return ((Map <?, ?>) obj).values().iterator(); } if (obj instanceof Enumeration<?>) { return new EnumerationIterator<Object>((Enumeration<Object>)obj); } if (obj instanceof Iterable<?>) { return ((Iterable <?>) obj).iterator(); } try { // look for an iterator() method to support the JDK5 Iterable // interface or any user tools/DTOs that want to work in // foreach without implementing the Collection interface AbstractExecutor.Method it = getMethodExecutor(obj, "iterator", null); if (it != null && Iterator.class.isAssignableFrom(it.getReturnType())) {