/** * Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.analytics.model.equity.futures; import java.util.List; import com.opengamma.core.value.MarketDataRequirementNames; import com.opengamma.engine.function.config.AbstractFunctionConfigurationBean; import com.opengamma.engine.function.config.FunctionConfiguration; import com.opengamma.engine.function.config.FunctionConfigurationSource; import com.opengamma.financial.analytics.model.future.FutureFunctions; import com.opengamma.master.historicaltimeseries.impl.HistoricalTimeSeriesRatingFieldNames; import com.opengamma.util.ArgumentChecker; /** * Function repository configuration source for the functions contained in this package. * Currently not referenced from StandardFunctionConfiguration or its children. */ public class DividendYieldFuturesFunctions extends AbstractFunctionConfigurationBean { /** * Default instance of a function configuration source exposing the functions from this package. * * @return the configuration source exposing functions from this package */ public static FunctionConfigurationSource instance() { return new FutureFunctions().getObjectCreating(); } private String _htsResolutionKey = HistoricalTimeSeriesRatingFieldNames.DEFAULT_CONFIG_NAME; private String _closingPriceField; private String _costOfCarryField = "COST_OF_CARRY"; private String _valueFieldName = MarketDataRequirementNames.MARKET_VALUE; public void setHtsResolutionKey(final String htsResolutionKey) { _htsResolutionKey = htsResolutionKey; } public String getHtsResolutionKey() { return _htsResolutionKey; } public void setClosingPriceField(final String closingPriceField) { _closingPriceField = closingPriceField; } public String getClosingPriceField() { return _closingPriceField; } public void setCostOfCarryField(final String costOfCarryField) { _costOfCarryField = costOfCarryField; } public String getCostOfCarryField() { return _costOfCarryField; } public void setValueFieldName(final String valueFieldName) { _valueFieldName = valueFieldName; } public String getValueFieldName() { return _valueFieldName; } @Override public void afterPropertiesSet() { ArgumentChecker.notNullInjected(getHtsResolutionKey(), "htsResolutionKey"); ArgumentChecker.notNullInjected(getClosingPriceField(), "closingPriceField"); ArgumentChecker.notNullInjected(getCostOfCarryField(), "costOfCarryField"); ArgumentChecker.notNullInjected(getValueFieldName(), "valueFieldName"); super.afterPropertiesSet(); } @Override protected void addAllConfigurations(final List<FunctionConfiguration> functions) { functions.add(functionConfiguration(EquityDividendYieldForwardFuturesFunction.class, getClosingPriceField(), getCostOfCarryField(), getHtsResolutionKey())); functions.add(functionConfiguration(EquityDividendYieldPresentValueFuturesFunction.class, getClosingPriceField(), getCostOfCarryField(), getHtsResolutionKey())); functions.add(functionConfiguration(EquityDividendYieldPV01FuturesFunction.class, getClosingPriceField(), getCostOfCarryField(), getHtsResolutionKey())); functions.add(functionConfiguration(EquityDividendYieldSpotFuturesFunction.class, getClosingPriceField(), getCostOfCarryField(), getHtsResolutionKey())); functions.add(functionConfiguration(EquityDividendYieldValueDeltaFuturesFunction.class, getClosingPriceField(), getCostOfCarryField(), getHtsResolutionKey())); functions.add(functionConfiguration(EquityDividendYieldValueRhoFuturesFunction.class, getClosingPriceField(), getCostOfCarryField(), getHtsResolutionKey())); functions.add(functionConfiguration(EquityDividendYieldFuturesYCNSFunction.class, getClosingPriceField(), getCostOfCarryField(), getHtsResolutionKey())); // TODO: add other package functions } }