I'm using maven-jaxb2-plugin and jaxb2-basics-annotate plugins to auto generate POJOs from my xsd. I've successfully generated annotations in POJOs. I need to apply an annotation to a method in an enum but cannot figure out how to do it.
xsd has,
<xsd:simpleType name="DeliveryStatus">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="DeliveredToTerminal" />
<xsd:enumeration value="DeliveryUncertain" />
<xsd:enumeration value="DeliveryImpossible" />
<xsd:enumeration value="DeliveredToNetwork" />
<xsd:enumeration value="MessageWaiting" />
<xsd:enumeration value="DeliveryNotificationNotSupported" />
</xsd:restriction>
</xsd:simpleType>
generated file
@XmlType(name = "DeliveryStatus")
@XmlEnum
public enum DeliveryStatus {
@XmlEnumValue("DeliveredToTerminal")
DELIVERED_TO_TERMINAL("DeliveredToTerminal"),
@XmlEnumValue("DeliveryUncertain")
DELIVERY_UNCERTAIN("DeliveryUncertain"),
@XmlEnumValue("DeliveryImpossible")
DELIVERY_IMPOSSIBLE("DeliveryImpossible"),
@XmlEnumValue("MessageWaiting")
MESSAGE_WAITING("MessageWaiting"),
@XmlEnumValue("DeliveredToNetwork")
DELIVERED_TO_NETWORK("DeliveredToNetwork"),
@XmlEnumValue("DeliveryNotificationNotSupported")
DELIVERY_NOTIFICATION_NOT_SUPPORTED("DeliveryNotificationNotSupported");
private final String value;
DeliveryStatus(String v) {
value = v;
}
public String value() {
return value;
}
public static DeliveryStatus fromValue(String v) {
for (DeliveryStatus c: DeliveryStatus.values()) {
if (c.value.equals(v)) {
return c;
}
}
throw new IllegalArgumentException(v);
}
}
What I need is to add JsonValue annotation to value method above.
I tried following and some other tweaksbut in binding.xjb nothing works.
<jaxb:bindings node="xs:simpleType[@name='DeliveryStatus']">
<annox:annotate target="field">
<annox:annotateEnum annox:class="org.codehaus.jackson.annotate.JsonValue"/>
</annox:annotate>
</jaxb:bindings>
Is there something called annotateEnum? Can it work, if so how?
Please help.