package org.marketcetera.trade; import org.marketcetera.quickfix.FIXMessageUtil; import org.marketcetera.util.misc.ClassVersion; import java.util.Date; import java.math.BigDecimal; import quickfix.Message; import javax.xml.bind.annotation.XmlRootElement; /* $License$ */ /** * Execution Report implementation that wraps a FIX Message. This class * is public for the sake of JAXB and is not intended for general use. * * @author anshul@marketcetera.com * @version $Id: ExecutionReportImpl.java 16888 2014-04-22 18:32:36Z colin $ * @since 1.0.0 */ @ClassVersion("$Id: ExecutionReportImpl.java 16888 2014-04-22 18:32:36Z colin $") //$NON-NLS-1$ @XmlRootElement public class ExecutionReportImpl extends ReportBaseImpl implements ExecutionReport { @Override public synchronized Date getTransactTime() { return FIXUtil.getTransactTime(getMessage()); } @Override public synchronized ExecutionType getExecutionType() { return FIXUtil.getExecOrExecTransType(getMessage()); } @Override public synchronized String getExecutionID() { return FIXUtil.getExecutionID(getMessage()); } @Override public synchronized Side getSide() { return FIXUtil.getSide(getMessage()); } @Override public synchronized Instrument getInstrument() { return FIXUtil.getInstrument(getMessage()); } @Override public synchronized BigDecimal getLastQuantity() { return FIXUtil.getLastQuantity(getMessage()); } @Override public synchronized BigDecimal getLastPrice() { return FIXUtil.getLastPrice(getMessage()); } @Override public synchronized String getLastMarket() { return FIXUtil.getLastMarket(getMessage()); } @Override public synchronized BigDecimal getOrderQuantity() { return FIXUtil.getOrderQuantity(getMessage()); } @Override public synchronized BigDecimal getOrderDisplayQuantity() { return FIXUtil.getOrderDisplayQuantity(getMessage()); } @Override public synchronized BigDecimal getLeavesQuantity() { return FIXUtil.getLeavesQuantity(getMessage()); } @Override public synchronized BigDecimal getCumulativeQuantity() { return FIXUtil.getCumulativeQuantity(getMessage()); } @Override public synchronized BigDecimal getAveragePrice() { return FIXUtil.getAveragePrice(getMessage()); } @Override public synchronized String getAccount() { return FIXUtil.getAccount(getMessage()); } @Override public synchronized OrderType getOrderType() { return FIXUtil.getOrderType(getMessage()); } @Override public synchronized OrderCapacity getOrderCapacity() { return FIXUtil.getOrderCapacity(getMessage()); } @Override public synchronized PositionEffect getPositionEffect() { return FIXUtil.getPositionEffect(getMessage()); } @Override public synchronized TimeInForce getTimeInForce() { return FIXUtil.getTimeInForce(getMessage()); } @Override public synchronized boolean isCancelable() { return FIXMessageUtil.isCancellable(getMessage()); } @Override public BigDecimal getPrice() { return FIXUtil.getPrice(getMessage()); } @Override public synchronized String toString() { return Messages.EXECUTION_REPORT_TO_STRING.getText( String.valueOf(getAccount()), String.valueOf(getAveragePrice()), String.valueOf(getCumulativeQuantity()), String.valueOf(getBrokerID()), String.valueOf(getExecutionID()), String.valueOf(getExecutionType()), String.valueOf(getLastMarket()), String.valueOf(getLastPrice()), String.valueOf(getLastQuantity()), String.valueOf(getLeavesQuantity()), String.valueOf(getOrderCapacity()), String.valueOf(getOrderID()), String.valueOf(getOrderQuantity()), String.valueOf(getOrderStatus()), String.valueOf(getOrderType()), String.valueOf(getOriginalOrderID()), String.valueOf(getOriginator()), String.valueOf(getHierarchy()), String.valueOf(getActorID()), String.valueOf(getViewerID()), String.valueOf(getPositionEffect()), String.valueOf(getReportID()), String.valueOf(getSendingTime()), String.valueOf(getSide()), String.valueOf(getInstrument()), String.valueOf(getText()), String.valueOf(getTimeInForce()), String.valueOf(getTransactTime()), String.valueOf(getBrokerOrderID()), String.valueOf(getPrice()), String.valueOf(getMessage()) ); } /** * Creates an instance. * * @param inMessage The FIX Message of type execution report. * @param inBrokerID the brokerID from which this report originated. * @param inOriginator the originator of this message. * @param inActorID the ID of the actor user of this report. * @param inViewerID the ID of the viewer user of this report. */ ExecutionReportImpl(Message inMessage, BrokerID inBrokerID, Originator inOriginator, UserID inActorID, UserID inViewerID) { this(inMessage, inBrokerID, inOriginator, Hierarchy.Flat, inActorID, inViewerID); } /** * Create a new ExecutionReportImpl instance. * * @param inMessage a <code>Message</code> value * @param inBrokerID a <code>BrokerID</code> value * @param inOriginator an <code>Originator</code> value * @param inHierarchy a <code>Hierarchy</code> value * @param inActorID a <code>UserID</code> value * @param inViewerID a <code>UserID</code> value */ ExecutionReportImpl(Message inMessage, BrokerID inBrokerID, Originator inOriginator, Hierarchy inHierarchy, UserID inActorID, UserID inViewerID) { super(inMessage, inBrokerID, inOriginator, inHierarchy, inActorID, inViewerID); } /** * Creates an instance. This empty constructor is intended for use * by JAXB. */ protected ExecutionReportImpl() { super(); } private static final long serialVersionUID = 1L; }