package org.marketcetera.core.instruments; import org.marketcetera.trade.ConvertibleBond; import org.marketcetera.trade.Instrument; import org.marketcetera.util.misc.ClassVersion; import quickfix.FieldNotFound; import quickfix.Message; import quickfix.field.CFICode; import quickfix.field.SecurityType; /* $License$ */ /** * Extracts a <code>ConvertibleBond</code> instrument from a FIX Message. * * @version $Id: ConvertibleBondFromMessage.java 16901 2014-05-11 16:14:11Z colin $ * @since 2.4.0 */ @ClassVersion("$Id: ConvertibleBondFromMessage.java 16901 2014-05-11 16:14:11Z colin $") public class ConvertibleBondFromMessage extends InstrumentFromMessage { /* (non-Javadoc) * @see org.marketcetera.core.instruments.InstrumentFromMessage#extract(quickfix.Message) */ @Override public Instrument extract(Message inMessage) { String symbol = getSymbol(inMessage); return symbol == null ? null : new ConvertibleBond(symbol); } /* (non-Javadoc) * @see org.marketcetera.core.instruments.DynamicInstrumentHandler#isHandled(java.lang.Object) */ @Override protected boolean isHandled(Message inValue) { try { return (!(inValue.isSetField(CFICode.FIELD))) && ((!inValue.isSetField(SecurityType.FIELD)) || SecurityType.CONVERTIBLE_BOND.equals(inValue.getString(SecurityType.FIELD))); } catch (FieldNotFound ignore) { return false; } } }