Example #1
0
  public ArgumentItem getArgument(int argumentIndex) {
    for (ArgumentItem each : argumentItemList) {
      Argument arg = each.getArgumentDescriptor();
      if (arg.index() == argumentIndex) return each;
      if (arg.index() < argumentIndex && each.takesMultipleArguments()) return each;
    }

    return null;
  }
Example #2
0
 private void validate(ArgumentItem newArg) {
   Range newRange = newArg.getRange();
   for (ArgumentItem each : argumentItemList) {
     Range r = each.getRange();
     if (r.overlaps(newRange))
       throw new XerialError(
           XerialErrorCode.DUPLICATE_OPTION,
           String.format("argument %s and %s have an overlap", each, newArg));
   }
 }
Example #3
0
  protected static String argumentExpression(ArgumentItem argItem) {
    StringBuilder line = new StringBuilder();

    Argument arg = argItem.getArgumentDescriptor();
    String format;

    if (arg.required()) format = argItem.takesMultipleArguments() ? "%s ..." : "%s";
    else format = argItem.takesMultipleArguments() ? "[%s ...]" : "[%s]";

    String name = StringUtil.varNameToNaturalName(argItem.getArgumentName());

    line.append(String.format(format, name));

    return line.toString();
  }