public static <S, D> Condition<S, D> and(Condition<S, D> condition1, Condition<S, D> condition2) {
    Assert.notNull(condition1, "condition1");
    Assert.notNull(condition2, "condition2");
    return new AndCondition<S, D>(condition1, condition2);
  }
public static < S , D > Condition < S , D > and ( Condition < S , D > condition1 , Condition < S , D > condition2 ) { Assert . notNull ( condition1 , "condition1" ) ; Assert . notNull ( condition2 , "condition2" ) ; return new AndCondition < S , D > ( condition1 , condition2 ) ; }
Returns a new condition that applies if {@code condition1} AND {@code condition2} apply.

@return new condition
@throws IllegalArgumentException if {@code condition1} or {@code condition2} is null