com.opengamma.component.tool.DbCreateTool.java Source code

Java tutorial

Introduction

Here is the source code for com.opengamma.component.tool.DbCreateTool.java

Source

/**
 * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
 * 
 * Please see distribution for license.
 */
package com.opengamma.component.tool;

import java.io.File;

import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;

import com.opengamma.scripts.Scriptable;
import com.opengamma.util.db.tool.DbCreateOperation;
import com.opengamma.util.db.tool.DbToolContext;

/**
 * Tool for creating database objects using the installation scripts.
 */
@Scriptable
public class DbCreateTool extends AbstractDbTool<DbToolContext> {

    /**
     * Drop existing contents command line option.
     */
    private static final String DROP_EXISTING_OPTION = "d";

    @Override
    protected Options createOptions() {
        Options options = super.createOptions();
        options.addOption(createDropExistingOption());
        return options;
    }

    private static Option createDropExistingOption() {
        return new Option(DROP_EXISTING_OPTION, "drop", false, "whether to drop any existing contents");
    }

    //-------------------------------------------------------------------------
    @Override
    protected void doRun(boolean write, File outputFile) throws Exception {
        boolean dropExisting = getCommandLine().hasOption(DROP_EXISTING_OPTION);
        new DbCreateOperation(getDbToolContext(), write, outputFile, dropExisting).execute();
        if (write) {
            System.out.println("Database objects created successfully");
        }
    }

    //-------------------------------------------------------------------------
    /**
     * Main method to run the tool.
     * 
     * @param args  the arguments, not null
     */
    public static void main(String[] args) { //CSIGNORE
        boolean success = new DbCreateTool().initAndRun(args, DbToolContext.class);
        System.exit(success ? 0 : 1);
    }

}