private static Iterable<List<Object>> fixData(List<Column> columns, List<List<Object>> data) { if (data == null) { return null; } requireNonNull(columns, "columns is null"); ImmutableList.Builder<List<Object>> rows = ImmutableList.builder(); for (List<Object> row : data) { checkArgument(row.size() == columns.size(), "row/column size mismatch"); List<Object> newRow = new ArrayList<>(); for (int i = 0; i < row.size(); i++) { newRow.add(fixValue(columns.get(i).getType(), row.get(i))); } rows.add(unmodifiableList(newRow)); // allow nulls in list } return rows.build(); }
List<Object> fixedValue = new ArrayList<>(); for (Object object : List.class.cast(value)) { fixedValue.add(fixValue(signature.getTypeParametersAsTypeSignatures().get(0).toString(), object)); Map<Object, Object> fixedValue = new HashMap<>(); for (Map.Entry<?, ?> entry : (Set<Map.Entry<?, ?>>) Map.class.cast(value).entrySet()) { fixedValue.put(fixValue(keyType, entry.getKey()), fixValue(valueType, entry.getValue())); NamedTypeSignature namedTypeSignature = parameter.getNamedTypeSignature(); String key = namedTypeSignature.getName(); fixedValue.put(key, fixValue(namedTypeSignature.getTypeSignature().toString(), listValue.get(i)));