Avro maven плагин для дополнительных полей - PullRequest
0 голосов
/ 18 апреля 2020

Я использую плагин Avro maven для обработки некоторых файлов Avro и создания классов Java. Моя цель - сказать плагину генерировать необязательные методы получения всякий раз, когда поле принимает нулевые значения, объявив тип null. Например:

{
  "namespace": "br.com.gruposaga.core.event",
  "type": "record",
  "name": "UserEvent",
  "fields": [
    {
      "name": "id",
      "type": "int"
    },
    {
      "name": "name",
      "type": "string"
    },
    {
      "name": "email",
      "type": [
        "null",
        "string"
      ],
      "default": null
    }
  ]
}

Итак, в приведенном выше определении плагин должен генерировать получатели по умолчанию для идентификатора и имени. Но для электронной почты, которая может быть нулевой, я хочу, чтобы плагин просто генерировал дополнительный геттер. Я попробовал обе конфигурации gettersReturnOptional и createOptionalGetters в плагине, но ни одна из них не достигла этого. Итак, как это можно сделать?

1 Ответ

0 голосов
/ 26 апреля 2020

Мне удалось получить такое поведение, настроив шаблон скорости record.vm. Замена

#if (${this.gettersReturnOptional})

на

#if ($field.schema().isNullable())

сделала свое дело.

...