public BooleanBuilder and(@Nullable Predicate right) {
        if (right != null) {
            if (predicate == null) {
                predicate = right;
            } else {
                predicate = ExpressionUtils.and(predicate, right);
            }
        }
        return this;
    }
public BooleanBuilder and ( @ Nullable Predicate right ) { if ( right != null ) { if ( predicate == null ) { predicate = right ; } else { predicate = ExpressionUtils . and ( predicate , right ) ; } } return this ; }
Create the intersection of this and the given predicate

@param right right hand side of {@code and} operation
@return the current object