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);
}