} else if (source instanceof Set) {
return new ListModelSet((Set)source, true);
} else if (source instanceof List) {
return new ListModelList((List)source, true);
} else if (source instanceof Map) {
return new ListModelMap((Map)source, true);
} else if (source instanceof Object[]) {
return new ListModelArray((Object[]) source, true);
} else if ((source instanceof Class) && Enum.class.isAssignableFrom((Class)source)) {
return new ListModelArray((Object[]) ((Class)source).getEnumConstants(), true);
} else {