code: public boolean forEachMatcherAndArgument(ArgumentMatcherAction action) {
          if (matchingType == ERROR_UNSUPPORTED_NUMBER_OF_MATCHERS)
              return false;
  
          Object[] arguments = invocation.getArguments();
          for (int i = 0; i < arguments.length; i++) {
              ArgumentMatcher<?> matcher = matchers.get(i);
              Object argument = arguments[i];
  
              if (!action.apply(matcher, argument)) {
                  return false;
              }
          }
          return true;
      }
docs: Applies the given {@link ArgumentMatcherAction} to all arguments and
  corresponding matchers
  
  @param action
  must not be <code>null</code>
  @return
  <ul>
  <li><code>true</code> if the given <b>action</b> returned
  <code>true</code> for all arguments and matchers passed to it.
  <li><code>false</code> if the given <b>action</b> returned
  <code>false</code> for one of the passed arguments and matchers
  <li><code>false</code> if the given matchers don't fit to the given invocation
  because too many or to few matchers are available.
  </ul>