В моем текущем приложении маршаллера JAXB мне нужно условно записать элемент в xml.
Дайте мне посмотреть, смогу ли я придумать пример, чтобы он не звучал как домашнее задание колледжа.
У меня есть класс Student со свойствами, которые называются заслуга и статус. Не все студенты будут иметь заслуги. Только студенты, не являющиеся первокурсниками, будут иметь заслуги (свойство, называемое status, дает информацию о том, является ли студент новичком или нет). Пока я просматриваю список студентов и маршаллизирую в xml, мне нужно условно отобразить Merit.
Как мне справиться с таким динамическим созданием элементов XML с помощью JAXB? Я могу придумать решение, в котором я делю свой класс Student на FreshManStudents и OtherStudents и определяю заслуги как @XMlTransient для других учащихся. Не слишком ли излишне реорганизовывать мой объект только для целей JAXB?
В качестве альтернативы, я могу иметь логику внутри getMerit, а getMerit return NULL для студентов-первокурсников. Предполагая, что JAXB игнорирует нулевые объекты, это правильный (читай элегантный) способ решения проблемы?
Спасибо за ваши мнения и предложения
public class Student {
private Merit merit;
private String status;
public Merit getMerit() {
return merit;
}
public void setMerit(Merit m) {
merit= m;
}
public String getStatus() {
return status;
}
public void setStatus(String s) {
status= s;
}
}