private static String[] shredIndexed(IndexedRecord entity, Schema schema) { List<Schema.Field> fields = schema.getFields(); String[] values = new String[fields.size()]; for (int i = 0; i < values.length; i += 1) { values[i] = valueString(entity.get(i), fields.get(i).schema()); } return values; }
private static <E> String[] shredReflect(E entity, Schema schema) { ReflectData reflect = ReflectData.get(); List<Schema.Field> fields = schema.getFields(); String[] values = new String[fields.size()]; for (int i = 0; i < values.length; i += 1) { Schema.Field field = fields.get(i); values[i] = valueString( reflect.getField(entity, field.name(), i), field.schema()); } return values; }
case UNION: int index = ReflectData.get().resolveUnion(schema, value); return valueString(value, schema.getTypes().get(index)); default: