in src/main/java/org/apache/sling/scripting/sightly/compiler/util/ObjectModel.java [258:295]
public static Collection<Object> toCollection(Object object) {
if (object == null) {
return Collections.emptyList();
}
if (object instanceof Object[]) {
return Arrays.asList((Object[]) object);
}
if (object.getClass().isArray()) {
int length = Array.getLength(object);
Collection<Object> list = new ArrayList<>();
for (int i = 0; i < length; i++) {
list.add(Array.get(object, i));
}
return list;
}
if (object instanceof Collection) {
return (Collection<Object>) object;
}
if (object instanceof Map) {
return ((Map) object).keySet();
}
if (object instanceof Enumeration) {
return Collections.list((Enumeration<Object>) object);
}
if (object instanceof Iterator) {
return fromIterator((Iterator<Object>) object);
}
if (object instanceof Iterable) {
Iterable<Object> iterable = (Iterable<Object>) object;
return fromIterator(iterable.iterator());
}
if (object instanceof String || object instanceof Number) {
Collection<Object> list = new ArrayList<>();
list.add(object);
return list;
}
return Collections.emptyList();
}