/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.bbg.config;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
import com.opengamma.component.tool.AbstractTool;
import com.opengamma.financial.tool.ToolContext;
import com.opengamma.master.config.ConfigMaster;
import com.opengamma.scripts.Scriptable;
/**
* Tool to populate the config master with default bloomberg security type definitions
*/
@Scriptable
public class BloombergSecurityTypeDefinitionTool extends AbstractTool<ToolContext> {
private static final String CONFIG_NAME_OPT = "n";
//-------------------------------------------------------------------------
/**
* Main method to run the tool.
*
* @param args the standard tool arguments, not null
*/
public static void main(String[] args) { // CSIGNORE
new BloombergSecurityTypeDefinitionTool().invokeAndTerminate(args);
}
//-------------------------------------------------------------------------
@Override
protected void doRun() throws Exception {
ToolContext toolContext = getToolContext();
ConfigMaster configMaster = toolContext.getConfigMaster();
CommandLine commandLine = getCommandLine();
BloombergSecurityTypeDefinitionLoader loader;
if (commandLine.hasOption(CONFIG_NAME_OPT)) {
loader = new BloombergSecurityTypeDefinitionLoader(configMaster, commandLine.getOptionValue(CONFIG_NAME_OPT));
} else {
loader = new BloombergSecurityTypeDefinitionLoader(configMaster);
}
loader.run();
}
protected Class<?> getEntryPointClass() {
return getClass();
}
@Override
protected void usage(Options options) {
HelpFormatter formatter = new HelpFormatter();
formatter.setWidth(120);
formatter.printHelp("bbg-sec-type-defintion-tool.sh ...", options, true);
}
@Override
protected Options createOptions(boolean mandatoryConfig) {
Options options = super.createOptions(mandatoryConfig);
options.addOption(createNameOption());
return options;
}
@SuppressWarnings("static-access")
private Option createNameOption() {
return OptionBuilder.isRequired(false)
.hasArgs()
.withArgName("name config doc")
.withDescription("The name of the config document")
.withLongOpt("name")
.create(CONFIG_NAME_OPT);
}
}