/** * @param repetition * @param alias name of the field * @param nestedType * @return */ public static GroupType listType(Repetition repetition, String alias, Type nestedType) { return listWrapper( repetition, alias, LIST, nestedType ); } }
public static GroupType mapType(Repetition repetition, String alias, String mapAlias, Type keyType, Type valueType) { //support projection only on key of a map if (valueType == null) { return listWrapper( repetition, alias, MAP, new GroupType( Repetition.REPEATED, mapAlias, MAP_KEY_VALUE, keyType) ); } else { if (!valueType.getName().equals("value")) { throw new RuntimeException(valueType.getName() + " should be value"); } return listWrapper( repetition, alias, MAP, new GroupType( Repetition.REPEATED, mapAlias, MAP_KEY_VALUE, keyType, valueType) ); } }
public static GroupType mapType(Repetition repetition, String alias, Type valueType) { if (!valueType.getName().equals("value")) { throw new RuntimeException(valueType.getName() + " should be value"); } return listWrapper( repetition, alias, MAP, new GroupType( Repetition.REPEATED, "map", MAP_KEY_VALUE, new PrimitiveType(Repetition.REQUIRED, PrimitiveTypeName.BINARY, "key"), valueType) ); }
public static GroupType listType(Repetition repetition, String alias, Type nestedType) { GroupType repeatedField; if (nestedType.isPrimitive()) { repeatedField = new GroupType( Repetition.REPEATED, "bag", nestedType); } else { final GroupType nestedGroupType = nestedType.asGroupType(); repeatedField = new GroupType( Repetition.REPEATED, nestedGroupType.getName(), nestedGroupType.getFields()); } return listWrapper( repetition, alias, LIST, repeatedField ); } }