/******************************************************************************* * Copyright (c) 2013 Luigi Sgro. All rights reserved. This * program and the accompanying materials are made available under the terms of * the Eclipse Public License v1.0 which accompanies this distribution, and is * available at http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Luigi Sgro - initial API and implementation ******************************************************************************/ package com.quantcomponents.marketdata.osgi.proxy; import java.util.Date; import java.util.TimeZone; import com.quantcomponents.core.model.BarSize; import com.quantcomponents.core.model.DataType; import com.quantcomponents.core.model.IContract; import com.quantcomponents.core.osgi.ISeriesIteratorHost; import com.quantcomponents.core.osgi.ISeriesListenerHostLocal; import com.quantcomponents.core.remote.ServiceHandle; import com.quantcomponents.marketdata.IMutableOHLCTimeSeries; import com.quantcomponents.marketdata.IMutableTickTimeSeries; import com.quantcomponents.marketdata.IOHLCPoint; import com.quantcomponents.marketdata.IOHLCTimeSeries; import com.quantcomponents.marketdata.IStockDatabase; import com.quantcomponents.marketdata.ITickPoint; import com.quantcomponents.marketdata.osgi.IMutableOHLCTimeSeriesHost; import com.quantcomponents.marketdata.osgi.IMutableTickTimeSeriesHost; import com.quantcomponents.marketdata.osgi.IOHLCTimeSeriesHost; import com.quantcomponents.marketdata.osgi.IStockDatabaseHost; import com.quantcomponents.marketdata.osgi.ImmutableOHLCTimeSeriesProxy; public class StockDatabaseProxy implements IStockDatabase { private final IStockDatabaseHost stockDatabaseHost; private final IMutableOHLCTimeSeriesHost ohlcTimeSeriesHost; private final IMutableTickTimeSeriesHost tickTimeSeriesHost; private final IOHLCTimeSeriesHost virtualTimeSeriesHost; private final ISeriesIteratorHost<Date, Double, IOHLCPoint> ohlcSeriesIteratorHost; private final ISeriesIteratorHost<Date, Double, ITickPoint> tickSeriesIteratorHost; private final ISeriesListenerHostLocal<Date, Double, IOHLCPoint> ohlcSeriesListenerHost; private final ISeriesListenerHostLocal<Date, Double, ITickPoint> tickSeriesListenerHost; private final ServiceHandle<IStockDatabaseHost> stockDatabaseHandle; public StockDatabaseProxy(IStockDatabaseHost stockDatabaseHost, IMutableOHLCTimeSeriesHost ohlcTimeSeriesHost, IMutableTickTimeSeriesHost tickTimeSeriesHost, IOHLCTimeSeriesHost virtualTimeSeriesHost, ISeriesIteratorHost<Date, Double, IOHLCPoint> ohlcSeriesIteratorHost, ISeriesIteratorHost<Date, Double, ITickPoint> tickSeriesIteratorHost, ISeriesListenerHostLocal<Date, Double, IOHLCPoint> ohlcSeriesListenerHost, ISeriesListenerHostLocal<Date, Double, ITickPoint> tickSeriesListenerHost, ServiceHandle<IStockDatabaseHost> stockDatabaseHandle) { this.stockDatabaseHost = stockDatabaseHost; this.ohlcTimeSeriesHost = ohlcTimeSeriesHost; this.tickTimeSeriesHost = tickTimeSeriesHost; this.virtualTimeSeriesHost = virtualTimeSeriesHost; this.ohlcSeriesIteratorHost = ohlcSeriesIteratorHost; this.tickSeriesIteratorHost = tickSeriesIteratorHost; this.ohlcSeriesListenerHost = ohlcSeriesListenerHost; this.tickSeriesListenerHost = tickSeriesListenerHost; this.stockDatabaseHandle = stockDatabaseHandle; } @Override public IMutableOHLCTimeSeries getOHLCTimeSeries() { ServiceHandle<IMutableOHLCTimeSeriesHost> timeSeriesHostHandle = stockDatabaseHost.getOHLCTimeSeries(stockDatabaseHandle); return new OHLCTimeSeriesProxy(ohlcTimeSeriesHost, ohlcSeriesIteratorHost, ohlcSeriesListenerHost, timeSeriesHostHandle); } @Override public IMutableTickTimeSeries getTickTimeSeries() { ServiceHandle<IMutableTickTimeSeriesHost> timeSeriesHostHandle = stockDatabaseHost.getTickTimeSeries(stockDatabaseHandle); return new TickTimeSeriesProxy(tickTimeSeriesHost, tickSeriesIteratorHost, tickSeriesListenerHost, timeSeriesHostHandle); } @Override public IOHLCTimeSeries getVirtualTimeSeries() { ServiceHandle<IOHLCTimeSeriesHost> timeSeriesHostHandle = stockDatabaseHost.getVirtualTimeSeries(stockDatabaseHandle); return new ImmutableOHLCTimeSeriesProxy(virtualTimeSeriesHost, ohlcSeriesIteratorHost, ohlcSeriesListenerHost, timeSeriesHostHandle); } @Override public long getTimestamp() { return stockDatabaseHost.getTimestamp(stockDatabaseHandle); } @Override public TimeZone getTimeZone() { return stockDatabaseHost.getTimeZone(stockDatabaseHandle); } @Override public IContract getContract() { return stockDatabaseHost.getContract(stockDatabaseHandle); } @Override public BarSize getBarSize() { return stockDatabaseHost.getBarSize(stockDatabaseHandle); } @Override public DataType getDataType() { return stockDatabaseHost.getDataType(stockDatabaseHandle); } @Override public boolean isIncludeAfterHours() { return stockDatabaseHost.isIncludeAfterHours(stockDatabaseHandle); } @Override public String getPersistentID() { return stockDatabaseHost.getPersistentID(stockDatabaseHandle); } }