Package io.lumify.core.cmdline

Source Code of io.lumify.core.cmdline.OwlImport

package io.lumify.core.cmdline;

import com.google.inject.Inject;
import io.lumify.core.model.ontology.OntologyRepository;
import io.lumify.core.util.LumifyLogger;
import io.lumify.core.util.LumifyLoggerFactory;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
import org.semanticweb.owlapi.model.IRI;

import java.io.File;

public class OwlImport extends CommandLineBase {
    private static final LumifyLogger LOGGER = LumifyLoggerFactory.getLogger(OwlImport.class);
    private OntologyRepository ontologyRepository;
    private String inFileName;
    private String documentIRIString;

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

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

        options.addOption(
                OptionBuilder
                        .withLongOpt("in")
                        .withDescription("The input OWL file")
                        .isRequired()
                        .hasArg(true)
                        .withArgName("fileName")
                        .create("i")
        );

        options.addOption(
                OptionBuilder
                        .withLongOpt("iri")
                        .withDescription("The document IRI (URI used for prefixing concepts)")
                        .hasArg(true)
                        .withArgName("uri")
                        .create()
        );

        return options;
    }

    @Override
    protected void processOptions(CommandLine cmd) throws Exception {
        super.processOptions(cmd);
        this.inFileName = cmd.getOptionValue("in");
        this.documentIRIString = cmd.getOptionValue("iri");
    }

    @Override
    protected int run(CommandLine cmd) throws Exception {
        File inFile = new File(this.inFileName);
        IRI documentIRI;
        if (this.documentIRIString == null) {
            String guessedIri = ontologyRepository.guessDocumentIRIFromPackage(inFile);
            documentIRI = IRI.create(guessedIri);
        } else {
            documentIRI = IRI.create(this.documentIRIString);
        }
        ontologyRepository.importFile(inFile, documentIRI, getAuthorizations());
        getGraph().flush();
        ontologyRepository.clearCache();
        LOGGER.info("owl import complete");
        return 0;
    }

    @Inject
    public void setOntologyRepository(OntologyRepository ontologyRepository) {
        this.ontologyRepository = ontologyRepository;
    }
}
TOP

Related Classes of io.lumify.core.cmdline.OwlImport

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.