package org.marketcetera.trade; import javax.xml.bind.annotation.adapters.XmlAdapter; import org.apache.commons.lang.StringEscapeUtils; import org.marketcetera.util.misc.ClassVersion; import quickfix.InvalidMessage; import quickfix.Message; /** * A JAXB adapter for QuickFIX/J message properties. It uses escaped * strings for marshaling to prevent the introduction of invalid * characters into XML. * * @author tlerios@marketcetera.com * @since 1.0.0 * @version $Id: FIXMessageAdapter.java 16154 2012-07-14 16:34:05Z colin $ */ /* $License$ */ @ClassVersion("$Id: FIXMessageAdapter.java 16154 2012-07-14 16:34:05Z colin $") //$NON-NLS-1$ public class FIXMessageAdapter extends XmlAdapter<String,Message> { @Override public String marshal (Message msg) { if (msg==null) { return null; } return StringEscapeUtils.escapeJava(msg.toString()); } @Override public Message unmarshal (String msg) throws InvalidMessage { if (msg==null) { return null; } return new Message(StringEscapeUtils.unescapeJava(msg)); } }