Types.buildMessage() .optionalGroup().as(MAP) .repeatedGroup() .required(BINARY).as(UTF8).named("key") .optional(INT32).named("value")
Types.buildMessage() .optionalGroup().as(MAP) .repeatedGroup() .required(BINARY).as(UTF8).named("key") .required(INT32).named("value")
Types.buildMessage() .optionalGroup().as(MAP) .repeatedGroup() .required(BINARY).as(UTF8).named("key") .optionalGroup().as(LIST) .repeatedGroup() .optional(INT32).named("element") .named("list")
.required(PrimitiveType.PrimitiveTypeName.BINARY).as(OriginalType.UTF8).named("city") .required(PrimitiveType.PrimitiveTypeName.BINARY).as(OriginalType.UTF8).named("ip") .repeatedGroup() .required(PrimitiveType.PrimitiveTypeName.INT32).named("ttl") .required(PrimitiveType.PrimitiveTypeName.INT32).named("ttl2")
@Override protected Type build(String name) { Preconditions.checkState(logicalTypeAnnotation == null, "MAP is already a logical type and can't be changed."); if (keyType == null) { keyType = STRING_KEY; } GroupBuilder<GroupType> builder = buildGroup(repetition).as(OriginalType.MAP); if (id != null) { builder.id(id.intValue()); } if (valueType != null) { return builder .repeatedGroup().addFields(keyType, valueType).named("map") .named(name); } else { return builder .repeatedGroup().addFields(keyType).named("map") .named(name); } } }
@Override protected Type build(String name) { Preconditions.checkState(originalType == null, "MAP is already a logical type and can't be changed."); if (keyType == null) { keyType = STRING_KEY; } GroupBuilder<GroupType> builder = buildGroup(repetition).as(OriginalType.MAP); if (id != null) { builder.id(id.intValue()); } if (valueType != null) { return builder .repeatedGroup().addFields(keyType, valueType).named("map") .named(name); } else { return builder .repeatedGroup().addFields(keyType).named("map") .named(name); } } }
@Override protected Type build(String name) { Preconditions.checkState(logicalTypeAnnotation == null, "LIST is already the logical type and can't be changed"); Preconditions.checkNotNull(elementType, "List element type"); GroupBuilder<GroupType> builder = buildGroup(repetition).as(OriginalType.LIST); if (id != null) { builder.id(id.intValue()); } return builder .repeatedGroup().addFields(elementType).named("list") .named(name); }
@Override protected Type build(String name) { Preconditions.checkState(originalType == null, "LIST is already the logical type and can't be changed"); Preconditions.checkNotNull(elementType, "List element type"); GroupBuilder<GroupType> builder = buildGroup(repetition).as(OriginalType.LIST); if (id != null) { builder.id(id.intValue()); } return builder .repeatedGroup().addFields(elementType).named("list") .named(name); }
Types.buildMessage() .optionalGroup().as(MAP) .repeatedGroup() .optional(BINARY).as(UTF8).named("key") .optionalGroup().as(MAP) .repeatedGroup() .optional(BINARY).as(UTF8).named("key") .required(INT32).named("value")
Types.buildMessage() .optionalGroup().as(LIST) .repeatedGroup() .optionalGroup() .required(DOUBLE).named("latitude")
Types.buildMessage() .optionalGroup().as(LIST) .repeatedGroup() .requiredGroup() .required(DOUBLE).named("latitude")
Types.buildMessage() .optionalGroup().as(MAP) .repeatedGroup() .required(BINARY).as(UTF8).named("key") .optionalGroup().as(LIST) .repeatedGroup() .optional(BINARY).as(UTF8).named("element") .named("list")
Types.buildMessage() .optionalGroup().as(LIST) .repeatedGroup() .requiredGroup() .required(DOUBLE).named("latitude")
Types.buildMessage() .optionalGroup().as(LIST) .repeatedGroup() .required(DOUBLE).named("latitude") .required(DOUBLE).named("longitude")
Types.buildMessage() .optionalGroup().as(MAP) .repeatedGroup() .requiredGroup() .required(INT32).named("x")
Types.buildMessage() .optionalGroup().as(MAP) .repeatedGroup() .optional(DOUBLE).named("key") .optionalGroup()
Types.buildMessage() .optionalGroup().as(LIST) .repeatedGroup() .required(INT64).named("count") .named("array")
Types.buildMessage() .optionalGroup().as(LIST) .repeatedGroup() .required(INT64).named("count") .named("single_element_group")
Types.buildMessage() .optionalGroup().as(LIST) .repeatedGroup() .required(INT64).named("count") .named("single_element_groups_tuple")