code: @NonNull
      public Expression and(@NonNull Expression expression) {
          if (expression == null) {
              throw new IllegalArgumentException("expression cannot be null.");
          }
          return new CompoundExpression(Arrays.asList(this, expression), CompoundExpression.OpType.And);
      }
docs: Create a logical AND expression that performs logical AND operation with
  the current expression.
  
  @param expression the expression to AND with the current expression.
  @return a logical AND expression.