code: @Override
      public boolean matches(final Object o) {
          if (!(o instanceof Request)) {
              return false;
          }
  
          T value;
          try {
              value = this.retrieveValue((Request) o);
          }
          catch (final Exception e) {
              throw new JadlerException("An error occurred while retrieving a value from the http request", e);
          }
  
          return this.pred.matches(value);
      }
docs: Checks whether the given {@link Request} object matches this matcher.
  @param o {@link Request} object to be matched by this matcher. If this param is not of type {@link Request} this
  method will always return {@code false}.
  @return {@code true} if the value retrieved using {@link #retrieveValue(net.jadler.Request)} from the given
  {@link Request} object matches the predicate registered by the {@link #RequestMatcher(org.hamcrest.Matcher)},
  otherwise {@code false}.