package org.jboss.resteasy.test.providers.jaxb.resource; import org.jboss.logging.Logger; import javax.xml.bind.annotation.adapters.XmlAdapter; public class XmlJavaTypeAdapterAlienAdapter extends XmlAdapter<XmlJavaTypeAdapterHuman, XmlJavaTypeAdapterAlien> { public static int marshalCounter; public static int unmarshalCounter; private static Logger logger = Logger.getLogger(XmlJavaTypeAdapterResource.class.getName()); public static void reset() { marshalCounter = 0; unmarshalCounter = 0; logger.info("reset()"); } @Override public XmlJavaTypeAdapterHuman marshal(XmlJavaTypeAdapterAlien alien) throws Exception { logger.info("Entering AlienAdapter.marshal()"); marshalCounter++; XmlJavaTypeAdapterHuman human = new XmlJavaTypeAdapterHuman(); human.setName(reverse(alien.getName())); return human; } @Override public XmlJavaTypeAdapterAlien unmarshal(XmlJavaTypeAdapterHuman human) throws Exception { logger.info("Entering AlienAdapter.unmarshal()"); unmarshalCounter++; XmlJavaTypeAdapterAlien alien = new XmlJavaTypeAdapterAlien(); alien.setName(reverse(human.getName())); return alien; } protected static String reverse(String s) { return new StringBuilder(s).reverse().toString(); } }