/** * Parses arguments and fill fields of this object. * * @exception BadCommandLineException thrown when there's a problem in the command-line arguments */ public void parseArguments(String[] args) throws BadCommandLineException { for (int i = 0; i < args.length; i++) { if (args[i].length() == 0) throw new BadCommandLineException(); if (args[i].charAt(0) == '-') { int j = parseArgument(args, i); if (j == 0) throw new BadCommandLineException( Messages.format(Messages.UNRECOGNIZED_PARAMETER, args[i])); i += (j - 1); } else { if (args[i].endsWith(".jar")) scanEpisodeFile(new File(args[i])); else addFile(args[i], grammars, ".xsd"); } } // configure proxy if (proxyHost != null || proxyPort != null) { if (proxyHost != null && proxyPort != null) { System.setProperty("http.proxyHost", proxyHost); System.setProperty("http.proxyPort", proxyPort); System.setProperty("https.proxyHost", proxyHost); System.setProperty("https.proxyPort", proxyPort); } else if (proxyHost == null) { throw new BadCommandLineException(Messages.format(Messages.MISSING_PROXYHOST)); } else { throw new BadCommandLineException(Messages.format(Messages.MISSING_PROXYPORT)); } if (proxyAuth != null) { DefaultAuthenticator.getAuthenticator().setProxyAuth(proxyAuth); } } if (grammars.isEmpty()) throw new BadCommandLineException(Messages.format(Messages.MISSING_GRAMMAR)); if (schemaLanguage == null) schemaLanguage = guessSchemaLanguage(); // if(target==SpecVersion.V2_2 && !isExtensionMode()) // throw new BadCommandLineException( // "Currently 2.2 is still not finalized yet, so using it requires the -extension // switch." + // "NOTE THAT 2.2 SPEC MAY CHANGE BEFORE IT BECOMES FINAL."); if (pluginLoadFailure != null) throw new BadCommandLineException( Messages.format(Messages.PLUGIN_LOAD_FAILURE, pluginLoadFailure)); }