Skip to content

Instantly share code, notes, and snippets.

@febintt
Created December 13, 2013 07:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save febintt/7940950 to your computer and use it in GitHub Desktop.
Save febintt/7940950 to your computer and use it in GitHub Desktop.
Function Configuration Populator
/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.examples.simulated.loader;
import java.util.Collections;
import com.google.common.collect.ImmutableList;
import com.opengamma.algotree.function.MyFunctions;
import com.opengamma.component.tool.AbstractTool;
import com.opengamma.core.config.impl.ConfigItem;
import com.opengamma.engine.function.config.FunctionConfigurationDefinition;
import com.opengamma.engine.function.config.FunctionConfigurationSource;
import com.opengamma.engine.function.config.ParameterizedFunctionConfiguration;
import com.opengamma.engine.function.config.StaticFunctionConfiguration;
import com.opengamma.examples.simulated.function.ExampleStandardFunctionConfiguration;
import com.opengamma.examples.simulated.function.SyntheticVolatilityCubeFunctions;
import com.opengamma.financial.aggregation.AggregationFunctions;
import com.opengamma.financial.analytics.AnalyticsFunctions;
import com.opengamma.financial.currency.CurrencyFunctions;
import com.opengamma.financial.property.PropertyFunctions;
import com.opengamma.financial.target.TargetFunctions;
import com.opengamma.financial.tool.ToolContext;
import com.opengamma.financial.value.ValueFunctions;
import com.opengamma.financial.view.ViewFunctions;
import com.opengamma.master.config.ConfigMasterUtils;
import com.opengamma.scripts.Scriptable;
/**
* Example code to create the function configurations
* <p>
*/
@Scriptable
public class ExampleFunctionConfigurationPopulator extends AbstractTool<ToolContext> {
private static final String STANDARD = "STANDARD_FUNCTIONS";
private static final String VIEW = "VIEW_FUNCTIONS";
private static final String VALUE = "VALUE_FUNCTIONS";
private static final String PROPERTY = "PROPERTY_FUNCTIONS";
private static final String CURRENCY = "CURRENCY_FUNCTIONS";
private static final String ANALYTICS = "ANALYTICS_FUNCTIONS";
private static final String AGGREGATION = "AGGREGATION_FUNCTIONS";
private static final String FINANCIAL = "FINANCIAL_FUNCTIONS";
private static final String EXAMPLE = "EXAMPLE_FUNCTIONS";
private static final String CUBE = "CUBE_FUNCTIONS";
private static final String TARGET = "TARGET_FUNCTIONS";
//-------------------------------------------------------------------------
/**
* Main method to run the tool. No arguments are needed.
*
* @param args the arguments, unused
*/
public static void main(final String[] args) { // CSIGNORE
new ExampleFunctionConfigurationPopulator().initAndRun(args, ToolContext.class);
System.exit(0);
}
//-------------------------------------------------------------------------
@Override
protected void doRun() {
storeFunctionDefinition(AGGREGATION, AggregationFunctions.instance());
storeFunctionDefinition(ANALYTICS, AnalyticsFunctions.instance());
storeFunctionDefinition(CURRENCY, CurrencyFunctions.instance());
storeFunctionDefinition(PROPERTY, PropertyFunctions.instance());
storeFunctionDefinition(VALUE, ValueFunctions.instance());
storeFunctionDefinition(VIEW, ViewFunctions.instance());
storeFunctionDefinition(TARGET, TargetFunctions.instance());
storeFunctionDefinition("custom", MyFunctions.instance());
FunctionConfigurationDefinition financialFunc = new FunctionConfigurationDefinition(FINANCIAL,
ImmutableList.of(AGGREGATION, ANALYTICS, CURRENCY, PROPERTY, TARGET, VALUE, VIEW, EXAMPLE),
Collections.<StaticFunctionConfiguration>emptyList(),
Collections.<ParameterizedFunctionConfiguration>emptyList());
storeFunctionDefinition(financialFunc);
storeFunctionDefinition(STANDARD, ExampleStandardFunctionConfiguration.instance());
storeFunctionDefinition(CUBE, SyntheticVolatilityCubeFunctions.instance());
FunctionConfigurationDefinition exampleFunc = new FunctionConfigurationDefinition(EXAMPLE,
ImmutableList.of(FINANCIAL, STANDARD, CUBE, "custom"),
Collections.<StaticFunctionConfiguration>emptyList(),
Collections.<ParameterizedFunctionConfiguration>emptyList());
storeFunctionDefinition(exampleFunc);
}
private void storeFunctionDefinition(final FunctionConfigurationDefinition definition) {
final ConfigItem<FunctionConfigurationDefinition> config = ConfigItem.of(definition, definition.getName(), FunctionConfigurationDefinition.class);
ConfigMasterUtils.storeByName(getToolContext().getConfigMaster(), config);
}
private void storeFunctionDefinition(final String name, final FunctionConfigurationSource funcConfigSource) {
FunctionConfigurationDefinition definition = FunctionConfigurationDefinition.of(name, funcConfigSource);
final ConfigItem<FunctionConfigurationDefinition> config = ConfigItem.of(definition, name, FunctionConfigurationDefinition.class);
ConfigMasterUtils.storeByName(getToolContext().getConfigMaster(), config);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment