@Nullable
  @Override
  public Pair<Boolean, Argument> getArgument(final int argumentPosition) {
    if (argumentPosition >= myMaxArguments) {
      return null;
    }
    final boolean optional = argumentPosition >= myMinArguments;

    if (myArguments.size() > argumentPosition) {
      return Pair.create(!optional, myArguments.get(argumentPosition));
    }

    // We may need last one
    return Pair.create(false, myArguments.get(myArguments.size() - 1));
  }
@Nullable
  @Override
  public Pair<Boolean, Argument> getArgument(final int argumentPosition)