All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.marketcetera.marketdata.yahoo.YahooFeedModule Maven / Gradle / Ivy

There is a newer version: 4.1.1
Show newest version
package org.marketcetera.marketdata.yahoo;

import javax.management.AttributeChangeNotification;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.Validate;
import org.marketcetera.core.CoreException;
import org.marketcetera.marketdata.AbstractMarketDataModule;
import org.marketcetera.marketdata.AbstractMarketDataModuleMXBean;
import org.marketcetera.util.misc.ClassVersion;

/* $License$ */

/**
 * Provides access to Yahoo market data.
 * 
 * 

* Module Features *

* * * * * * *
CapabilitiesData Emitter
Stops data flowsNo
Start OperationStarts the feed, logs into it.
Stop OperationStops the data feed.
Management Interface{@link AbstractMarketDataModuleMXBean}
MX Notification{@link AttributeChangeNotification} * whenever {@link #getFeedStatus()} changes.
* * @author Colin DuPlantis * @version $Id: YahooFeedModule.java 16154 2012-07-14 16:34:05Z colin $ * @since 2.1.4 */ @ClassVersion("$Id: YahooFeedModule.java 16154 2012-07-14 16:34:05Z colin $") public class YahooFeedModule extends AbstractMarketDataModule implements YahooFeedMXBean { /* (non-Javadoc) * @see org.marketcetera.marketdata.yahoo.YahooFeedMXBean#getURL() */ @Override public String getURL() { return url; } /* (non-Javadoc) * @see org.marketcetera.marketdata.yahoo.YahooFeedMXBean#setURL(java.lang.String) */ @Override public void setURL(String inURL) { url = StringUtils.trimToNull(inURL); Validate.notNull(url, Messages.MISSING_URL.getText()); } /* (non-Javadoc) * @see org.marketcetera.marketdata.yahoo.YahooFeedMXBean#getRefreshInterval() */ @Override public String getRefreshInterval() { return Integer.toString(refreshInterval); } /* (non-Javadoc) * @see org.marketcetera.marketdata.yahoo.YahooFeedMXBean#setRefreshInterval(int) */ @Override public void setRefreshInterval(String inRefreshInterval) { String rawInterval = StringUtils.trimToNull(inRefreshInterval); if(rawInterval == null) { refreshInterval = 0; } else { refreshInterval = Integer.parseInt(rawInterval); } feed.setRefreshInterval(refreshInterval); } /* (non-Javadoc) * @see org.marketcetera.marketdata.yahoo.YahooFeedMXBean#getRequestCounter() */ @Override public long getRequestCounter() { return feed.getRequestCounter(); } /* (non-Javadoc) * @see org.marketcetera.marketdata.yahoo.YahooFeedMXBean#resetRequestCounter() */ @Override public void resetRequestCounter() { feed.resetCounter(); } /** * Create a new YahooFeedModule instance. * * @throws CoreException */ YahooFeedModule() throws CoreException { super(YahooFeedModuleFactory.INSTANCE_URN, new YahooFeedFactory().getMarketDataFeed()); feed = new YahooFeedFactory().getMarketDataFeed(); } /* (non-Javadoc) * @see org.marketcetera.marketdata.AbstractMarketDataModule#getCredentials() */ @Override protected YahooFeedCredentials getCredentials() throws CoreException { return new YahooFeedCredentials(url); } /** * the underlying feed */ private final YahooFeed feed; /** * the URL at which Yahoo provides the data */ private volatile String url = "http://finance.yahoo.com/d/quotes.csv"; //$NON-NLS-1$ /** * the interval at which to get a new quote */ private volatile int refreshInterval = 250; }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy