У меня есть POJO, который я хотел бы представить в виде XML из веб-службы, предпочтительно с JAX-B.
Поля, которые должны быть представлены в XML, зависят от того, какой тип пользователя делает запрос. Например, у нас есть роль для пользователей HumanResources и Finance. Пользователь может быть определен как:
@ XmlRootElement
публичный класс Пользователь {
@ XmlElement public String someHumanResourceData;
@ XmlElement public String someFinanceData;
}
Я хочу, чтобы пользователи отдела кадров видели данные отдела кадров, а финансы - данные финансового отдела, но не более того. HR не должен видеть финансовые данные.
Есть ли рекомендуемый подход, как это сделать? Какие поисковые термины я мог бы использовать для поиска дополнительной информации в Интернете?
Несколько идей, которые мне не нравятся:
1) Я мог бы использовать подклассы, чтобы выставить FinanceUser и HumanResourceUser, который имеет только соответствующие данные, и родительского пользователя с общими данными. Однако, это хрупко и может работать на небольшом примере, я чувствую, что мне нужен более гибкий, композиционный подход к производству.
2) Сотрудник рекомендует подход «корзина», в котором клиент запрашивает, какие поля он / она хочет с каждым запросом. Я не нахожу стандартного способа сделать это или даже многих других людей, которые сделали этот подход. Это звучит очень по-домашнему и трудоемко для меня.
Есть еще идеи?