есть метод для создания схемы Avro:
public void schemaCreator(String recordName, EntityModel entityModel){
SchemaBuilder.FieldAssembler<Schema> fields;
SchemaBuilder.RecordBuilder<Schema> record = SchemaBuilder.record(recordName);
fields = record.namespace("Test").fields();
for (AttributeModel attributeModel : entityModel.getAttributeModels()) {
fields = fields.name(attributeModel.getName()).type().nullable().stringType()
.noDefault();
}
}
В результате имеем схему:
{
"type":"record",
"name":"InfoData",
"namespace":"Test",
"fields":[
{
"name":"Setting",
"type":["string","null"]
},
{
"name":"Value",
"type":["string","null"]}]
}
Как добавить несколько типов для поля? Например: "type":["string","long","boolean","null"]}]
Вот вариант решения, таким образом можно формировать список типов в цикле:
public void schemaCreator(String recordName, EntityModel entityModel){
SchemaBuilder.FieldAssembler<Schema> fields;
SchemaBuilder.RecordBuilder<Schema> record = SchemaBuilder.record(recordName);
fields = record.namespace("Test").fields();
final Schema intType = Schema.create(Schema.Type.INT);
final Schema booleanType = Schema.create(Schema.Type.BOOLEAN);
final Schema nullType = Schema.create(Schema.Type.NULL);
for (AttributeModel attributeModel : entityModel.getAttributeModels()) {
Schema unionSchema = Schema.createUnion(Arrays.asList(nullType, intType, booleanType));
fields.name(attributeModel.getName()).type(unionSchema).noDefault();
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Хочу вывести превью камеры на дисплей и нарисовать квадрат в области тачаПревью получить удалось, но не могу грамотно реализовать отрисовку
В следующем примере блок main (синезелёный градиент) обрезается при помощи clip-path и принимает форму сердечкаОднако видно, что он обрезается...
В IE11 из-за вложенного флексбокса текст не переходит на следующую строку, а растягивается на весь контент, если же поставить дляitem width:100%, блоки...
Не знал, как точно сформировать вопрос, поэтому сразу прошу прощения