Поскольку у сущности в среднем может быть десять полей, для каждого класса нужно удалить много текста. Используя стандартное форматирование и одну строку между методами, эти 10 получателей и десять установщиков означают 10 * 2 * 4 = 80
строк на класс. Все, что вам нужно добавить одну @Data
аннотацию.
Так что я бы сконцентрировался на удалении и написал бы простое регулярное выражение, распознающее тривиальные геттеры и сеттеры. Добавление аннотации ко всем измененным файлам - это то, что я бы с удовольствием сделал вручную даже для десятков объектов. Забыть это не проблема, так как это приводит к очевидным ошибкам во время компиляции.
Тривиальное непроверенное регулярное выражение для тривиальных геттеров:
[ \t]+public [\\w<,> ]+ get[A-Z](\\w+)\\(\\)\\s*\\{\\s*return\\s+[a-z]\\1;\\s*\\}\\s*\n
Никакое такое регулярное выражение не может быть идеальным (мои разрывы, например, когда возвращаются массивы или когда вы используете нестандартное форматирование или именование; это легко исправить, но могут возникнуть другие проблемы). Тем не менее, он может делать свою работу.
Мое регулярное выражение не допускает комментариев в теле метода, но я бы не назвал прокомментированный метод получения тривиальным.