in src/main/java/org/apache/sling/scripting/sightly/compiler/util/ObjectModel.java [148:182]
public static boolean toBoolean(Object object) {
if (object == null) {
return false;
}
if (object instanceof Number) {
Number number = (Number) object;
return !(number.doubleValue() == 0.0);
}
String s = object.toString().trim();
if (EMPTY_STRING.equals(s)) {
return false;
} else if ("true".equalsIgnoreCase(s) || "false".equalsIgnoreCase(s)) {
return Boolean.parseBoolean(s);
}
if (object instanceof Collection) {
return ((Collection) object).size() > 0;
}
if (object instanceof Map) {
return ((Map) object).size() > 0;
}
if (object instanceof Iterable<?>) {
return ((Iterable<?>) object).iterator().hasNext();
}
if (object instanceof Iterator<?>) {
return ((Iterator<?>) object).hasNext();
}
return !(object instanceof Object[]) || ((Object[]) object).length > 0;
}