package org.marketcetera.client.jms;
import java.io.Serializable;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElementRef;
import javax.xml.bind.annotation.XmlElementRefs;
import javax.xml.bind.annotation.XmlRootElement;
import org.marketcetera.trade.FIXOrderImpl;
import org.marketcetera.trade.Order;
import org.marketcetera.trade.OrderBaseImpl;
import org.marketcetera.util.misc.ClassVersion;
import org.marketcetera.util.ws.tags.SessionId;
/**
* A trade message envelope, used to send an {@link Order} instance
* over JMS as part of an existing Web Services session.
*
* @author tlerios@marketcetera.com
* @since 1.5.0
* @version $Id: OrderEnvelope.java 16154 2012-07-14 16:34:05Z colin $
*/
/* $License$ */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement
@ClassVersion("$Id: OrderEnvelope.java 16154 2012-07-14 16:34:05Z colin $")
public class OrderEnvelope
implements Serializable
{
// CLASS DATA.
private static final long serialVersionUID=1L;
// INSTANCE DATA.
@XmlElementRefs(value={
@XmlElementRef(type=OrderBaseImpl.class),
@XmlElementRef(type=FIXOrderImpl.class)
})
private final Order mOrder;
private final SessionId mSessionId;
// CONSTRUCTORS.
/**
* Creates a new envelope with the given order (which must be
* either a {@link OrderBaseImpl} or a {@link FIXOrderImpl}) and
* session ID.
*
* @param order The order.
* @param sessionId The session ID.
*/
public OrderEnvelope
(Order order,
SessionId sessionId)
{
mOrder=order;
mSessionId=sessionId;
}
/**
* Creates a new envelope. This empty constructor is intended for
* use by JAXB.
*/
protected OrderEnvelope()
{
mOrder=null;
mSessionId=null;
}
// INSTANCE METHODS.
/**
* Returns the receiver's order.
*
* @return The order.
*/
public Order getOrder()
{
return mOrder;
}
/**
* Returns the receiver's session ID.
*
* @return The ID.
*/
public SessionId getSessionId()
{
return mSessionId;
}
// Object.
@Override
public String toString()
{
return Messages.ORDER_ENVELOPE_TO_STRING.getText
(String.valueOf(getOrder()),
String.valueOf(getSessionId()));
}
}