@Override
        public ExpressionOperator build() {
            Boolean enabled = this.enabled;
            if (Boolean.TRUE.equals(enabled)) {
                enabled = null;
            }

            Op op = this.op;
            if (Op.AND.equals(op)) {
                op = null;
            }

            List<ExpressionItem> children = this.children;
            if (children.isEmpty()) {
                children = null;
            } else {
                children = Collections.unmodifiableList(children);
            }

            return new ExpressionOperator(enabled, op, children);
        }
A convenience function for adding terms in one go, the parameters should read fairly clearly

@param field     The field name
@param condition The condition to apply to the value
@param value     The value
@return this builder, with the completed term added.
stroom-query/stroom-query-api/src/main/java/stroom/query/api/ExpressionOperator.java