/** * Gets a full path to IMP directory. It can be defined either in config.xml or via command line arguments. * Setting a parameter via command line argument overwrites value from config.xml. * * @return a file defining a full path to IMP directory or null if it's not specified neither in config.xml nor via * command line arguments */ public File getImpDirectoryFile() { // cmd line argument has first priority String impDir = cmdLineArgs.getImp() != null ? cmdLineArgs.getImp() : defaultImp; if (impDir == null) { return null; } return new File(impDir); }
/** * Gets a full path to working directory. It can be defined either in config.xml or via command line arguments. * Setting a parameter via command line argument overwrites value from config.xml. * * @return a file defining a full path to working directory or null if it's not specified neither in config.xml * nor via command line arguments */ public File getWorkingDirFile() { // cmd line argument has first priority String workingDir = cmdLineArgs.getWorkingDirectory() != null ? cmdLineArgs.getWorkingDirectory() : defaultWorkingDir; if (workingDir == null) { return null; } return new File(workingDir); }
@Test public void testParseCorrectCmdLineArgumentsShortName() { String[] args = new String[]{ "--cpl", "cpl.xml", "--imp", "pathToImp", "-c", "config.xml", "-w", "pathToWorkingDir", "-l", "error" }; ImfUtilityCmdLineArgs cmdLineArgs = CliFactory.parseArguments(ImfUtilityCmdLineArgs.class, args); assertEquals("cpl.xml", cmdLineArgs.getCpl()); assertEquals("pathToImp", cmdLineArgs.getImp()); assertEquals("config.xml", cmdLineArgs.getConfig()); assertEquals("pathToWorkingDir", cmdLineArgs.getWorkingDirectory()); assertEquals(LogLevel.error, cmdLineArgs.getLogLevel()); }
/** * Gets a full path to CPL file. It can be defined either in config.xml or via command line arguments. * Setting a parameter via command line argument overwrites value from config.xml. * * @return a file defining a full path to CPL or null if it's not specified neither in config.xml nor via command line arguments */ public File getCplFile() { // cmd line argument has first priority String cpl = cmdLineArgs.getCpl() != null ? cmdLineArgs.getCpl() : defaultCpl; if (cpl == null) { return null; } // try if a valid path for CPL is specified. File cplFile = new File(cpl); if (cplFile.isFile()) { return cplFile; } // assume that the CPL is relative to IMP. File impDirectory = getImpDirectoryFile(); if (impDirectory == null) { return cplFile; } return new File(impDirectory, cpl); }
private static <T extends ImfUtilityCmdLineArgs> T parseArgs(Class<T> clazz, String[] args) { LOGGER.debug("Parsing command line arguments..."); T imfArgs = CliFactory.parseArguments(clazz, Arrays.copyOfRange(args, 1, args.length)); LogHelper.setLogLevel(imfArgs.getLogLevel().getLogLevel()); LOGGER.debug("Parsed command line arguments: OK\n"); return imfArgs; }
@Test public void testParseCorrectCmdLineArgumentsLongName() { String[] args = new String[]{ "--cpl", "cpl.xml", "--imp", "pathToImp", "--config", "config.xml", "--working-dir", "pathToWorkingDir", "--log-level", "debug" }; ImfUtilityCmdLineArgs cmdLineArgs = CliFactory.parseArguments(ImfUtilityCmdLineArgs.class, args); assertEquals("cpl.xml", cmdLineArgs.getCpl()); assertEquals("pathToImp", cmdLineArgs.getImp()); assertEquals("config.xml", cmdLineArgs.getConfig()); assertEquals("pathToWorkingDir", cmdLineArgs.getWorkingDirectory()); assertEquals(LogLevel.debug, cmdLineArgs.getLogLevel()); }