code: public <T4> Pattern4<T1, T2, T3, T4> and(Observable<T4> other) {
          if (other == null) {
              throw new NullPointerException();
          }
          return new Pattern4<T1, T2, T3, T4>(o1, o2, o3, other);
      }
docs: Creates a pattern that matches when all three observable sequences have an available element.
  
  @param other
  Observable sequence to match with the two previous sequences.
  @return Pattern object that matches when all observable sequences have an available element.