public static <T> Iterator<T> iterator(Class<T> class1, final Object value) { if (value == null) { return Collections.EMPTY_LIST.iterator(); } if (Boon.isArray(value)) { final int length = Arry.len(value); return new Iterator<T>() { int i = 0; @Override public boolean hasNext() { return i < length; } @Override public T next() { if (i >= length) throw new NoSuchElementException("No more properties"); T next = (T) BeanUtils.idx(value, i); i++; return next; } @Override public void remove() {} }; } else if (Typ.isCollection(value.getClass())) { return ((Collection<T>) value).iterator(); } else { return (Iterator<T>) Collections.singleton(value).iterator(); } }
/** * Converts the value to boolean, and if it is null, it uses the default value passed. * * @param obj value to convert to boolean * @param defaultValue default value * @return obj converted to boolean */ public static boolean toBoolean(Object obj, boolean defaultValue) { if (obj == null) { return defaultValue; } if (obj instanceof Boolean) { return ((Boolean) obj).booleanValue(); } else if (obj instanceof Number || obj.getClass().isPrimitive()) { int value = toInt(obj); return value != 0 ? true : false; } else if (obj instanceof String || obj instanceof CharSequence) { String str = Conversions.toString(obj); if (str.length() == 0) { return false; } if (str.equals("false")) { return false; } else { return true; } } else if (Boon.isArray(obj)) { return Boon.len(obj) > 0; } else if (obj instanceof Collection) { if (len(obj) > 0) { List list = Lists.list((Collection) obj); while (list.remove(null)) {} return Lists.len(list) > 0; } else { return false; } } else { return toBoolean(Conversions.toString(obj)); } }