public static MapBuilder<GroupType> requiredMap() { return map(Type.Repetition.REQUIRED); }
public static MapBuilder<GroupType> requiredMap() { return map(Type.Repetition.REQUIRED); }
public static MapBuilder<GroupType> optionalMap() { return map(Type.Repetition.OPTIONAL); }
public static MapBuilder<GroupType> optionalMap() { return map(Type.Repetition.OPTIONAL); }
public GroupType map(MapType map, Type.Repetition repetition, int id, String name) { NestedField keyField = map.fields().get(0); NestedField valueField = map.fields().get(1); return Types.map(repetition) .key(field(keyField)) .value(field(valueField)) .id(id) .named(name); }
@Override public Type map(GroupType map, Type key, Type value) { GroupType repeated = map.getType(0).asGroupType(); Type originalKey = repeated.getType(0); Type originalValue = repeated.getType(1); int keyId = getId(originalKey); int valueId = getId(originalValue); if (selectedIds.contains(keyId) || selectedIds.contains(valueId)) { return map; } else if (value != null) { if (value != originalValue) { return Types.map(map.getRepetition()) .key(originalKey) .value(value) .id(getId(map)) .named(map.getName()); } return map; } return null; }