package org.marketcetera.orderloader.system; import org.marketcetera.util.misc.ClassVersion; import org.marketcetera.trade.Instrument; import org.marketcetera.trade.Equity; import org.marketcetera.trade.SecurityType; import org.marketcetera.orderloader.OrderParsingException; /* $License$ */ /** * Implements extraction of an equity instrument from a row. * * @author anshul@marketcetera.com * @version $Id: EquityFromRow.java 16154 2012-07-14 16:34:05Z colin $ * @since 2.0.0 */ @ClassVersion("$Id: EquityFromRow.java 16154 2012-07-14 16:34:05Z colin $") public class EquityFromRow extends InstrumentFromRow { @Override protected boolean canProcess(String inHeader, int inIndex) { //no extra headers need to be processed for equity. return false; } @Override protected Instrument extract(Row inRow) throws OrderParsingException { //Fetch the security type to catch any security type parsing errors getSecurityType(inRow.getRow()); String symbol = getSymbol(inRow.getRow()); return symbol != null && (!symbol.trim().isEmpty()) ? new Equity(symbol) : null; } @Override protected boolean isHandled(Row inValue) { SecurityType secType = null; try { secType = getSecurityType(inValue.getRow()); } catch (OrderParsingException ignore) { } return secType == null || SecurityType.CommonStock.equals(secType); } }