package org.marketcetera.core.instruments; import org.marketcetera.util.misc.ClassVersion; import org.marketcetera.trade.Instrument; import org.marketcetera.trade.Equity; import quickfix.Message; import quickfix.FieldNotFound; import quickfix.field.SecurityType; import quickfix.field.CFICode; /* $License$ */ /** * Extracts an equity instrument from a FIX Message. * <p> * Returns a null value if the symbol for the equity is not found in the message. * * @author anshul@marketcetera.com * @version $Id: EquityFromMessage.java 16154 2012-07-14 16:34:05Z colin $ * @since 2.0.0 */ @ClassVersion("$Id: EquityFromMessage.java 16154 2012-07-14 16:34:05Z colin $") public class EquityFromMessage extends InstrumentFromMessage { @Override public Instrument extract(Message inMessage) { String symbol = getSymbol(inMessage); return symbol == null ? null : new Equity(symbol); } @Override protected boolean isHandled(Message inValue) { try { return (!(inValue.isSetField(CFICode.FIELD))) && ((!inValue.isSetField(SecurityType.FIELD)) || SecurityType.COMMON_STOCK.equals(inValue.getString(SecurityType.FIELD))); } catch (FieldNotFound ignore) { return false; } } }