Я получил xsd от внешнего источника, который я не могу контролировать.Теперь мы хотим добавить пользовательские методы в сгенерированные классы JAXB, чтобы объект знал больше о себе, а не был простым POJO с геттерами и сеттерами.
Идея в том, что когда мы реализуем такой подход,не нужно детализировать гидратированный объект, но спросить у объекта конкретную информацию, которая нам нужна, путем вызова пользовательских методов и может получить то, что мы хотим?
Конечно, существует традиционный подход к программированию, в котором я хранюна детализацию потомков потомков потомков корневого объекта, вызов метода get для каждого потомка и реализацию бизнес-логики.Но почему-то команда здесь не хочет этого.
Один из подходов, который я использовал до сих пор, - это грубая сила один.Как я генерирую классы из XSD, используя JAXB.тогда у меня есть внешняя утилита (сейчас это отдельная Java-программа), которая при запуске будет читать некоторые текстовые файлы (структурированные по-своему, чтобы выяснить, какой метод и в какой файл .java должен идти) в определенном каталогекоторый содержит пользовательские методы и перемещает эти методы в соответствующие классы, сгенерированные JAXB.Каждый раз, когда я получаю новую версию XSD, мне нужно сгенерировать классы, вызвать эту утилиту и, возможно, решить некоторые проблемы компиляции и т. Д. На случай, если в сгенерированных JAXB классах появятся переменные.Утилита работает отлично.Но я хочу знать это.
Есть ли лучший способ сделать это?Я проверил интернет.Есть несколько решений, но они просто переопределяют существующие методы get в сгенерированных объектах JAXB и не добавляют совершенно новые методы.
Пожалуйста, предложите.