package org.marketcetera.quickfix.messagefactory;
import quickfix.Message;
import quickfix.FieldNotFound;
/**
* Interface for all the FIX version-specific modifictions to messages.
* For example, FIX40-41 doesn't require {@link quickfix.field.TransactTime} in
* NewOrderSingle messages, but FIX42-44 does.
*
* Meant to work in conjunction with {@link org.marketcetera.quickfix.FIXMessageFactory} to create
* vanilla versions of version-specific messages.
*
* NOTE: this class has nothing to with the other kind of augmentor:
* augmentor. A duct usually enclosing the exhaust jet behind the nozzle exit section of rocket to provide increased thrust.
* @author toli
* @version $Id: FIXMessageAugmentor.java 16154 2012-07-14 16:34:05Z colin $
*/
public interface FIXMessageAugmentor {
/** Add the version-specific fields to a {@link quickfix.field.MsgType#ORDER_SINGLE} message */
public Message newOrderSingleAugment(Message inMessage);
/** Add the version-specific fields to a {@link quickfix.field.MsgType#EXECUTION_REPORT} message */
public Message executionReportAugment(Message inMessage) throws FieldNotFound;
/** Add the version-specific fields to a {@link quickfix.field.MsgType#ORDER_CANCEL_REJECT} message */
// public Message cancelRejectAugment(Message inMessage);
/** Add the version-specific fields to a {@link quickfix.field.MsgType#ORDER_CANCEL_REQUEST} message */
public Message cancelRequestAugment(Message inMessage);
/** Add the version-specific fields to a {@link quickfix.field.MsgType#ORDER_CANCEL_REPLACE_REQUEST} message */
public Message cancelReplaceRequestAugment(Message inMessage);
/** Determines whether or not we need to add a {@link quickfix.field.TransactTime} to a message */
public boolean needsTransactTime(Message inMsg);
}