Esempio n. 1
0
  /**
   * 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));
  }