code: public RateBasedRule withMatchPredicates(Predicate... matchPredicates) {
          if (this.matchPredicates == null) {
              setMatchPredicates(new java.util.ArrayList<Predicate>(matchPredicates.length));
          }
          for (Predicate ele : matchPredicates) {
              this.matchPredicates.add(ele);
          }
          return this;
      }
docs: <p>
  The <code>Predicates</code> object contains one <code>Predicate</code> element for each <a>ByteMatchSet</a>,
  <a>IPSet</a>, or <a>SqlInjectionMatchSet</a> object that you want to include in a <code>RateBasedRule</code>.
  </p>
  <p>
  <b>NOTE:</b> This method appends the values to the existing list (if any). Use
  {@link #setMatchPredicates(java.util.Collection)} or {@link #withMatchPredicates(java.util.Collection)} if you
  want to override the existing values.
  </p>
  
  @param matchPredicates
  The <code>Predicates</code> object contains one <code>Predicate</code> element for each
  <a>ByteMatchSet</a>, <a>IPSet</a>, or <a>SqlInjectionMatchSet</a> object that you want to include in a
  <code>RateBasedRule</code>.
  @return Returns a reference to this object so that method calls can be chained together.