package org.marketcetera.marketdata.csv; import static org.marketcetera.marketdata.Content.DIVIDEND; import static org.marketcetera.marketdata.Content.LATEST_TICK; import static org.marketcetera.marketdata.Content.MARKET_STAT; import static org.marketcetera.marketdata.Content.TOP_OF_BOOK; import static org.marketcetera.marketdata.Messages.UNSUPPORTED_REQUEST; import org.marketcetera.core.CoreException; import org.marketcetera.marketdata.DataRequestTranslator; import org.marketcetera.marketdata.MarketDataRequest; import org.marketcetera.util.log.I18NBoundMessage1P; import org.marketcetera.util.misc.ClassVersion; /** * Translates {@link MarketDataRequest} objects to a format that the {@link CSVFeed} can understand. * * @author toli kuznets * @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a> * @since 2.1.0 * @version $Id: CSVFeedMessageTranslator.java 16154 2012-07-14 16:34:05Z colin $ */ @ClassVersion("$Id: CSVFeedMessageTranslator.java 16154 2012-07-14 16:34:05Z colin $") public class CSVFeedMessageTranslator implements DataRequestTranslator<MarketDataRequest> { /* (non-Javadoc) * @see org.marketcetera.marketdata.DataRequestTranslator#translate(org.marketcetera.marketdata.DataRequest) */ @Override public MarketDataRequest fromDataRequest(MarketDataRequest inRequest) throws CoreException { if(inRequest.validateWithCapabilities(TOP_OF_BOOK,LATEST_TICK,DIVIDEND,MARKET_STAT)) { return inRequest; } throw new CoreException(new I18NBoundMessage1P(UNSUPPORTED_REQUEST, String.valueOf(inRequest.getContent()))); } /** * Gets a <code>CSVFeedMessageTranslator</code> instance. * * @return a <code>CSVFeedMessageTranslator</code> value */ static CSVFeedMessageTranslator getInstance() { return sInstance; } /** * Create a new CSVFeedMessageTranslator instance. * */ private CSVFeedMessageTranslator() { } /** * static instance */ private static final CSVFeedMessageTranslator sInstance = new CSVFeedMessageTranslator(); }