/* * Copyright (c) 2004-2011 Marco Maccaferri and others. * 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: * Marco Maccaferri - initial API and implementation */ package org.eclipsetrader.core.instruments; import java.util.Currency; import org.eclipsetrader.core.feed.IDividend; import org.eclipsetrader.core.feed.IFeedIdentifier; import org.eclipsetrader.core.repositories.IPropertyConstants; import org.eclipsetrader.core.repositories.IStore; import org.eclipsetrader.core.repositories.IStoreProperties; public class Stock extends Security implements IStock { private Currency currency; private IDividend[] dividends; protected Stock() { } public Stock(String name, IFeedIdentifier identifier, Currency currency) { super(name, identifier); this.currency = currency; } public Stock(IStore store, IStoreProperties storeProperties) { super(store, storeProperties); } /* (non-Javadoc) * @see org.eclipsetrader.core.instruments.IStock#getCurrency() */ @Override public Currency getCurrency() { return currency; } public void setCurrency(Currency currency) { this.currency = currency; } /* (non-Javadoc) * @see org.eclipsetrader.core.instruments.IStock#getDividends() */ @Override public IDividend[] getDividends() { return dividends; } public void setDividends(IDividend[] dividends) { this.dividends = dividends; } /* (non-Javadoc) * @see org.eclipsetrader.core.instruments.Security#getAdapter(java.lang.Class) */ @Override @SuppressWarnings({ "unchecked", "rawtypes" }) public Object getAdapter(Class adapter) { if (adapter.isAssignableFrom(Currency.class)) { return currency; } if (dividends != null && adapter.isAssignableFrom(dividends.getClass())) { return dividends; } return super.getAdapter(adapter); } /* (non-Javadoc) * @see org.eclipsetrader.core.instruments.Security#getStoreProperties() */ @Override public IStoreProperties getStoreProperties() { IStoreProperties storeProperties = super.getStoreProperties(); storeProperties.setProperty(IPropertyConstants.OBJECT_TYPE, IStock.class.getName()); storeProperties.setProperty(IPropertyConstants.CURRENCY, currency); if (dividends != null) { storeProperties.setProperty(IPropertyConstants.DIVIDENDS, dividends); } return storeProperties; } /* (non-Javadoc) * @see org.eclipsetrader.core.instruments.Security#setStoreProperties(org.eclipsetrader.core.repositories.IStoreProperties) */ @Override public void setStoreProperties(IStoreProperties storeProperties) { super.setStoreProperties(storeProperties); this.currency = (Currency) storeProperties.getProperty(IPropertyConstants.CURRENCY); this.dividends = (IDividend[]) storeProperties.getProperty(IPropertyConstants.DIVIDENDS); } }