Кастор Маршаллер возвращает пустые теги для нулевых объектов - PullRequest
0 голосов
/ 13 февраля 2012

Мы используем Castor для демонтажа объекта Castor в XML-строку. Castor не генерирует пустые теги для нулевых объектов. Доступен ли API для установки в качестве параметра во время демаршаллинга?

Есть способ справиться с этим, используя обработчик и переопределить метод convertUponGet для возврата пустой строки. Но есть ли лучше сделать это?

Любые подсказки помогут.

1 Ответ

0 голосов
/ 14 февраля 2012

Из того, что я видел, есть 3 способа решения этой проблемы: от лучшего к худшему.

  1. Используйте GeneralizedFieldHandler, как описано в http://stackoverflow.com/questions/9176479/how-to-tell-castor-to-marshall-a-null-field-to-an-empty-tag. Обработчик поляможет использоваться для других полей и не меняет поведение вашего класса.

  2. Измените ваш метод get для данного поля, чтобы проверять наличие нулей и возвращать пустую строку, если она равна нулю.Этот подход меняет поведение вашего класса, поэтому, если у вас есть другие части кода, полагающиеся на пустые значения для этого поля, что также не является хорошей идеей, вы столкнетесь с проблемами.

  3. Измените Castor самостоятельно, чтобы он возвращал пустую строку, когда встречается ноль.Обычно действительно плохая идея поменять используемый вами инструмент, если вы не отправите его обратно разработчикам проекта для интеграции в их базу кода для будущих выпусков.Это маловероятно, так как этот вопрос был поднят еще в 2007 году http://old.nabble.com/Forcing-marshalling-of-null-empty-values--to9080721.html#a9096375, если не раньше

...