public static boolean toBoolean()

in src/main/java/org/apache/sling/scripting/sightly/render/ObjectModel.java [154:197]


    public static boolean toBoolean(Object object) {
        if (object == null) {
            return false;
        }

        if (object instanceof Number) {
            Number number = (Number) object;
            return number.doubleValue() != 0.0;
        }

        if (object instanceof Boolean) {
            return Boolean.TRUE.equals(object);
        }

        if (object instanceof String) {
            return StringUtils.isNotBlank((String) object);
        }

        if (object instanceof Collection<?>) {
            return !((Collection<?>) object).isEmpty();
        }

        if (object instanceof Map<?, ?>) {
            return !((Map<?, ?>) object).isEmpty();
        }

        if (object instanceof Iterable<?>) {
            return ((Iterable<?>) object).iterator().hasNext();
        }

        if (object instanceof Iterator<?>) {
            return ((Iterator<?>) object).hasNext();
        }

        if (object instanceof Optional<?>) {
            Optional<?> optional = (Optional<?>) object;
            return optional.filter(ObjectModel::toBoolean).isPresent();
        }

        if (object.getClass().isArray()) {
            return Array.getLength(object) > 0;
        }
        return true;
    }