This could benefit from a varargs utility method (define in ExpressionUtil?) that accepts any number of AbstractExpressions that can each be NULL or a CONJUNCTION_AND or a single logical expression and returns them combined, which may be NULL or the (one) non-null input or a new CONJUNCTION_AND that combines the multiple non-null expressions.