Package io.lumify.palantir.dataImport

Source Code of io.lumify.palantir.dataImport.DataImport

package io.lumify.palantir.dataImport;

import io.lumify.core.cmdline.CommandLineBase;
import io.lumify.core.exception.LumifyException;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
import org.securegraph.Authorizations;
import org.securegraph.Visibility;

public class DataImport extends CommandLineBase {
    private static final String CMD_OPT_TABLE_NAMESPACE = "namespace";
    private static final String CMD_OPT_CONNECTION_STRING = "connectionstring";
    private static final String CMD_OPT_USERNAME = "username";
    private static final String CMD_OPT_PASSWORD = "password";
    private static final String CMD_OPT_ID_PREFIX = "idPrefix";
    private static final String CMD_OPT_OWL_PREFIX = "owlprefix";
    private static final String CMD_OPT_OUT_DIR = "outdir";
    private static final String CMD_OPT_ONTOLOGY_EXPORT = "ontologyexport";

    public static void main(String[] args) throws Exception {
        int res = new DataImport().run(args);
        if (res != 0) {
            System.exit(res);
        }
    }

    @Override
    protected Options getOptions() {
        Options opts = super.getOptions();

        opts.addOption(
                OptionBuilder
                        .withLongOpt(CMD_OPT_TABLE_NAMESPACE)
                        .withDescription("Table namespace")
                        .hasArg()
                        .isRequired()
                        .create("n")
        );

        opts.addOption(
                OptionBuilder
                        .withLongOpt(CMD_OPT_CONNECTION_STRING)
                        .withDescription("Database connection string")
                        .hasArg()
                        .isRequired()
                        .create("cs")
        );

        opts.addOption(
                OptionBuilder
                        .withLongOpt(CMD_OPT_USERNAME)
                        .withDescription("Username")
                        .hasArg()
                        .isRequired()
                        .create("u")
        );

        opts.addOption(
                OptionBuilder
                        .withLongOpt(CMD_OPT_PASSWORD)
                        .withDescription("Password")
                        .hasArg()
                        .isRequired()
                        .create("p")
        );

        opts.addOption(
                OptionBuilder
                        .withLongOpt(CMD_OPT_OWL_PREFIX)
                        .withDescription("URI prefix used when converting the ontology")
                        .hasArg()
                        .isRequired()
                        .create()
        );

        opts.addOption(
                OptionBuilder
                        .withLongOpt(CMD_OPT_ID_PREFIX)
                        .withDescription("Prefix of lumify ids")
                        .hasArg()
                        .create()
        );

        opts.addOption(
                OptionBuilder
                        .withLongOpt(CMD_OPT_OUT_DIR)
                        .withDescription("Output directory for ontology items")
                        .hasArg()
                        .create()
        );

        opts.addOption(
                OptionBuilder
                        .withLongOpt(CMD_OPT_ONTOLOGY_EXPORT)
                        .withDescription("Export the ontology and then exit")
                        .create()
        );

        return opts;
    }

    @Override
    protected int run(CommandLine cmd) throws Exception {
        String tableNamespace = cmd.getOptionValue(CMD_OPT_TABLE_NAMESPACE);
        String connectionString = cmd.getOptionValue(CMD_OPT_CONNECTION_STRING);
        String username = cmd.getOptionValue(CMD_OPT_USERNAME);
        String password = cmd.getOptionValue(CMD_OPT_PASSWORD);
        String idPrefix = cmd.getOptionValue(CMD_OPT_ID_PREFIX, "palantir");
        String outdir = cmd.getOptionValue(CMD_OPT_OUT_DIR);
        String owlPrefix = cmd.getOptionValue(CMD_OPT_OWL_PREFIX);
        boolean ontologyExport = cmd.hasOption(CMD_OPT_ONTOLOGY_EXPORT);
        Visibility visibility = new Visibility("");
        Authorizations authorizations = getAuthorizations();

        String hasMediaConceptTypeIri = getConfiguration().get("ontology.iri.hasMedia");
        if (hasMediaConceptTypeIri == null || hasMediaConceptTypeIri.length() == 0) {
            throw new LumifyException("'ontology.iri.hasMedia' is required.");
        }

        if (!owlPrefix.endsWith("#")) {
            owlPrefix = owlPrefix + "#";
        }

        DataImporterInitParameters p = new DataImporterInitParameters()
                .setConnectionString(connectionString)
                .setUsername(username)
                .setPassword(password)
                .setTableNamespace(tableNamespace)
                .setIdPrefix(idPrefix)
                .setOwlPrefix(owlPrefix)
                .setOutputDirectory(outdir)
                .setOntologyExport(ontologyExport)
                .setHasMediaConceptTypeIri(hasMediaConceptTypeIri)
                .setGraph(getGraph())
                .setVisibility(visibility)
                .setAuthorizations(authorizations);
        new DataImporter(p).run();

        return 0;
    }
}
TOP

Related Classes of io.lumify.palantir.dataImport.DataImport

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.