code: public Predicate<T> and( final Predicate<T> other ) {
          if (other == null || other == this) return this;
          return new Predicate<T>() {
              @Override
              public boolean test( T input ) {
                  return Predicate.this.test(input) && other.test(input);
              }
          };
      }
docs: Obtain a new predicate that performs the logical AND of this predicate and the supplied predicate.
  
  @param other the other predicate
  @return the composed predicate; never null