package org.marketcetera.trade;
import org.marketcetera.util.misc.ClassVersion;
import java.math.BigDecimal;
import java.util.Map;
/* $License$ */
/**
* Orders sent out by the system to Brokers. Orders of this type can
* be sent to any broker. The system will translate this order to the
* appropriate messages / protocol used by the broker.
*
* @author anshul@marketcetera.com
* @version $Id: OrderBase.java 16154 2012-07-14 16:34:05Z colin $
* @since 1.0.0
*/
@ClassVersion("$Id: OrderBase.java 16154 2012-07-14 16:34:05Z colin $")
public interface OrderBase extends Order {
/**
* The client assigned OrderID for this order. The factory
* assigns orderIDs when creating orders.
*
* @return the client assigned orderID for this order.
*
*/
OrderID getOrderID();
/**
* Sets the client assigned OrderID for this order.
*
* @param inOrderID the client assigned orderID for this order.
*
* @see #getOrderID()
*/
void setOrderID(OrderID inOrderID);
/**
* Gets the Side for the Order.
*
* @return the order Side.
*/
Side getSide();
/**
* Sets the Side for the Order.
*
* @param inSide the order Side.
*/
void setSide(Side inSide);
/**
* Gets the instrument.
*
* @return the instrument.
*/
public Instrument getInstrument();
/**
* Sets the instrument.
*
* @param inInstrument the instrument.
*/
public void setInstrument(Instrument inInstrument);
/**
* Gets the quantity for the Order.
*
* @return the quantity.
*/
BigDecimal getQuantity();
/**
* Sets the quantity for the Order.
*
* @param inQuantity the quantity.
*/
void setQuantity(BigDecimal inQuantity);
/**
* Gets the custom fields specified along with this order. Custom
* fields may be optionally specified to specify order fields that
* are not supported by this type.
* <p>
* For example, extra FIX field values may be supplied when sending
* an order. When sending FIX field values, the map key should be
* the integer field tag value and the map value should be the string
* value of that field.
*
* @return the custom fields for this order.
*/
Map<String,String> getCustomFields();
/**
* Sets the custom fields for this order.
*
* @param inCustomFields the custom fields for this order.
*
* @see #getCustomFields()
*/
void setCustomFields(Map<String,String> inCustomFields);
/**
* Gets the account for the order. An account may be optionally
* specified for an order.
*
* @return the account.
*/
String getAccount();
/**
* Sets the account for the order.
*
* @param inAccount the account.
*/
void setAccount(String inAccount);
/**
* Gets the text for the order. Text may be optionally
* specified for an order.
*
* @return the text.
*/
String getText();
/**
* Sets the text for the order.
*
* @param inText the text.
*/
void setText(String inText);
}