示例#1
0
  private String[] filterArgs(final String[] originalArgs, final OptionalModelId optionalModelId) {
    final ObjectList<String> filteredArgs = new ObjectArrayList<String>();
    for (int i = 0; i < originalArgs.length; i++) {
      final String argumentName = originalArgs[i].replaceAll("--", "");
      if (optionalModelId.columnIdentifier.equalsIgnoreCase(
          argumentName)) { // skip optional modelIds arguments as well.
        final int skipNumber = 1;
        LOGGER.info(
            "For optional modelId: "
                + optionalModelId.columnIdentifier
                + " Filtering out argument "
                + argumentName
                + " total args skipped: "
                + skipNumber);

        i += skipNumber; // skip argument name and 'skip' number of arguments.
      }
      if (optionalModelId.excludeArgumentNames.contains(argumentName)) {
        final int skipNumber = optionalModelId.skipValue(argumentName);
        LOGGER.info(
            "For optional modelId: "
                + optionalModelId.columnIdentifier
                + " Filtering out argument "
                + argumentName
                + " total args skipped: "
                + skipNumber);

        i += skipNumber; // skip argument name and 'skip' number of arguments.
      } else {
        LOGGER.debug("Adding argument to hashCode: " + originalArgs[i]);
        filteredArgs.add(originalArgs[i]);
      }

      if (i >= originalArgs.length) {
        break;
      }
    }
    // Hashcode will depend on argument order, so we sort them after filtering:
    Collections.sort(filteredArgs);
    return filteredArgs.toArray(new String[filteredArgs.size()]);
  }