package org.hadatac.metadata.loader; import java.util.HashMap; import java.util.Map; import org.hadatac.metadata.loader.MetadataContext; import org.hadatac.metadata.loader.SpreadsheetProcessing; import org.hadatac.utils.Feedback; import org.hadatac.utils.NameSpaces; public class Loader { private static boolean clean = false; private static boolean showHelp = false; private static boolean loadOntology = false; private static boolean loadXls = false; private static boolean verbose = false; private static Map<String, String> argsMap = new HashMap<String, String>(); private static MetadataContext metadata = null; public static MetadataContext getMetadataContext() { return metadata; } private static void printHelp() { System.out.println("Usage: hasnetoloader [options] -u username -p password -k knowldgeBaseURL[-i inputXLS]"); System.out.println(" -i inputXLS: generate ttl and load it into knowledge base;"); System.out.println(" inputXLS parsing warnings and errors are printed as they"); System.out.println(" are identified, if any"); System.out.println(" -c : clears knowldge base"); System.out.println(" -o : loads associated ontologies"); System.out.println(" -v : verbose mode on, including curl's outputs"); System.out.println(" -h : this help"); System.out.println(""); System.out.println("Example: hasnetoloader -c -o -u user -p abcde1234 -k http://localhost/slor4 -i myspreadsheet.xlsx "); System.out.println(" this command will clear the knowledgbase, load associated ontologies, convert myspreadsheet.xlsx"); System.out.println(" into turtle (ttl), and load the turtle into the knowledgebase."); } private static boolean parseArguments(String[] args) { if (args.length == 0) { printHelp(); return false; } for (int i=0; i < args.length; i++) { args[i] = args[i].toLowerCase().trim(); if ( (!args[i].equals("-i")) && (!args[i].equals("-c")) && (!args[i].equals("-o")) && (!args[i].equals("-v")) && (!args[i].equals("-h")) && (!args[i].equals("-u")) && (!args[i].equals("-p")) && (!args[i].equals("-k")) ) { System.out.println("Argument " + args[i] + " is invalid.\n"); return false; } if (args[i].equals("-c")) { clean = true; } if (args[i].equals("-o")) { loadOntology = true; } if (args[i].equals("-i")) { loadXls = true; } if (args[i].equals("-v")) { verbose = true; } if (args[i].equals("-h")) { showHelp = true; } if ( (args[i].equals("-i")) || (args[i].equals("-u")) || (args[i].equals("-p")) || (args[i].equals("-k")) ) { if (i == (args.length - 1)) { System.out.println("Argument " + args[i] + " misses associated value.\n"); return false; } if (args[i + 1].startsWith("-")) { System.out.println("Argument " + args[i] + " misses associated value.\n"); return false; } argsMap.put(args[i], args[i + 1]); i++; } } return true; } private static boolean validArguments (String[] args) { if (!parseArguments(args)) { return false; } if (argsMap.get("-u") == null) { System.out.println("Argument -u is missing.\n"); return false; } if (argsMap.get("-p") == null) { System.out.println("Argument -p is missing.\n"); return false; } if (argsMap.get("-k") == null) { System.out.println("Argument -k is missing.\n"); return false; } return true; } public static void main(String[] args) { if (validArguments(args)) { if (showHelp) { printHelp(); } else { NameSpaces.getInstance(); if (verbose) { System.out.println("Verbose mode is on"); } metadata = new MetadataContext(argsMap.get("-u"), argsMap.get("-p"), argsMap.get("-k"), verbose); if (clean) { System.out.println("Executing CLEAN"); metadata.clean(Feedback.COMMANDLINE); System.out.println(""); } if (loadOntology) { System.out.println("Executing LOADONTOLOGY"); metadata.loadOntologies(Feedback.COMMANDLINE, "confirmed"); System.out.println(""); } if (loadXls) { System.out.println("Executing LOADXLS"); String message = ""; message = SpreadsheetProcessing.generateTTL(Feedback.COMMANDLINE, "load", metadata, argsMap.get("-i")); //System.out.println(message); } } } } }