/*******************************************************************************
* 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.ui.marketdata;
import java.util.TimeZone;
import java.util.logging.Level;
import java.util.logging.Logger;
import com.quantcomponents.core.model.BarSize;
import com.quantcomponents.core.model.DataType;
import com.quantcomponents.core.model.IContract;
import com.quantcomponents.core.model.IPrettyNamed;
import com.quantcomponents.marketdata.IMutableOHLCTimeSeries;
import com.quantcomponents.marketdata.IMutableTickTimeSeries;
import com.quantcomponents.marketdata.IOHLCTimeSeries;
import com.quantcomponents.marketdata.IRealTimeMarketDataManager;
import com.quantcomponents.marketdata.IStockDatabase;
import com.quantcomponents.marketdata.StockDatabase;
public class StockDatabasePresentationWrapper implements IStockDatabase, IPrettyNamed {
private static final Logger logger = Logger.getLogger(StockDatabasePresentationWrapper.class.getName());
private final IStockDatabase db;
private final MarketDataManagerPresentationWrapper parent;
private final String name;
public StockDatabasePresentationWrapper(IStockDatabase db, MarketDataManagerPresentationWrapper parent) {
this.db = db;
this.parent = parent;
this.name = StockDatabase.stringRepr(db);
}
public MarketDataManagerPresentationWrapper getParent() {
return parent;
}
public IStockDatabase getInner() {
return db;
}
public boolean isRealtimeUpdate() {
try {
if (getParent() instanceof IRealTimeMarketDataManager)
return ((IRealTimeMarketDataManager) getParent()).isRealtimeUpdate(this);
else
return false;
} catch (Exception e) {
logger.log(Level.SEVERE, "Error while querying stock DB auto-update status: " + this.getPrettyName(), e);
return false;
}
}
@Override
public IMutableOHLCTimeSeries getOHLCTimeSeries() {
return db.getOHLCTimeSeries();
}
@Override
public IMutableTickTimeSeries getTickTimeSeries() {
return db.getTickTimeSeries();
}
@Override
public IOHLCTimeSeries getVirtualTimeSeries() {
return db.getVirtualTimeSeries();
}
@Override
public long getTimestamp() {
return db.getTimestamp();
}
@Override
public TimeZone getTimeZone() {
return db.getTimeZone();
}
@Override
public IContract getContract() {
return db.getContract();
}
@Override
public DataType getDataType() {
return db.getDataType();
}
@Override
public BarSize getBarSize() {
return db.getBarSize();
}
@Override
public boolean isIncludeAfterHours() {
return db.isIncludeAfterHours();
}
@Override
public String getPersistentID() {
return db.getPersistentID();
}
@Override
public String getPrettyName() {
return name;
}
}