Как я могу указать, какие экземпляры класса не маршалируются с помощью XMLAdapter? - PullRequest
1 голос
/ 10 июня 2011

У меня есть следующий класс Java, и я поместил аннотацию XmlJavaAdapter в переменную payerPartyReference.Я хочу, чтобы адаптер PartyReferenceAdapter использовался для демаршалинга ТОЛЬКО этой переменной, а не любых других переменных, имеющих одинаковый тип PartyReference, будь то в этом классе или в каком-то другом классе.Как я могу это сделать?Спасибо за вашу помощь!

public class InitialPayment extends PaymentBase
{

    // Want PartyReferenceAdapter to be used here
    @XmlJavaTypeAdapter(PartyReferenceAdapter.class)
    protected PartyReference payerPartyReference;
    //
    // Dont want PartyReferenceAdapter to be used here
    protected PartyReference receiverPartyReference;
    //
    protected AccountReference receiverAccountReference;
    @XmlSchemaType(name = "date")
    protected XMLGregorianCalendar adjustablePaymentDate;
    @XmlSchemaType(name = "date")
    protected XMLGregorianCalendar adjustedPaymentDate;
    protected Money paymentAmount;
}

Мой адаптер определяется следующим образом:

public class PartyReferenceAdapter 
    extends XmlAdapter < Object, PartyReference > {

  public PartyReference unmarshal(Object obj) throws Exception {

     Element element = null;

     if (obj instanceof Element) {

        element = (Element)obj;

        String reference_id = element.getAttribute("href");
        PartyReference pr = new PartyReference();
        pr.setHref(reference_id);                   
        return pr;

    }

    public Object marshal(PartyReference arg0) throws Exception {
     return null;
    }
}

1 Ответ

1 голос
/ 10 июня 2011

Уровень поля / свойства

Если вы установите @XmlJavaTypeAdapter для поля / свойства, оно будет использоваться только для этого свойства.

Уровень типа

Если для типа установлено значение @XmlJavaTypeAdapter, оно будет использоваться для всех ссылок на этот тип.

Уровень пакета

Если вы установите @XmlJavaTypeAdapter для пакета, он будет использоваться для всех ссылок на этот пакет.введите в этом пакете:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...