} else if (value instanceof List) {
return new ListDataModel((List<?>) value);
} else if (OBJECT_ARRAY_CLASS.isAssignableFrom(value.getClass())) {
return new ArrayDataModel((Object[]) value);
} else if (value instanceof ResultSet) {
return new ResultSetDataModel((ResultSet) value);
} else {
return new ScalarDataModel(value);
}
}