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;
}
}
}