public static Stream streamAutodetect()

in commons/src/main/java/org/apache/causeway/commons/internal/base/_NullSafe.java [193:225]


    public static Stream<?> streamAutodetect(final @Nullable Object pojo) {
        if(pojo==null) {
            return Stream.empty();
        }
        if(pojo instanceof Collection) {
            return ((Collection<?>)pojo).stream();
        }
        if(pojo instanceof ImmutableCollection) {
            return ((ImmutableCollection<?>)pojo).stream();
        }
        if(pojo.getClass().isArray()) {
            if(Array.getLength(pojo)==0) return Stream.empty();
            if(pojo instanceof Object[]) return Stream.of((Object[]) pojo);
            if(pojo instanceof boolean[]) return primitiveStream((boolean[]) pojo);
            if(pojo instanceof byte[]) return primitiveStream((byte[]) pojo);
            if(pojo instanceof char[]) return primitiveStream((char[]) pojo);
            if(pojo instanceof double[]) return primitiveStream((double[]) pojo);
            if(pojo instanceof float[]) return primitiveStream((float[]) pojo);
            if(pojo instanceof int[]) return primitiveStream((int[]) pojo);
            if(pojo instanceof long[]) return primitiveStream((long[]) pojo);
            if(pojo instanceof short[]) return primitiveStream((short[]) pojo);
        }
        if(pojo instanceof Map) {
            return ((Map<?, ?>)pojo).values().stream();
        }
        if(pojo instanceof Iterable) {
            return stream((Iterable<?>)pojo);
        }
        if(pojo instanceof Enumeration) {
            return stream((Enumeration<?>)pojo);
        }
        return Stream.of(pojo);
    }