private void appendAttributePath(StringBuilder sb, AttributeCondition attributeCondition) { appendAttributePath(sb, attributeCondition.getExpression()); }
private void appendAttributePath(StringBuilder sb, AttributeCondition attributeCondition) { appendAttributePath(sb, attributeCondition.getExpression()); }
private StringBuilder appendSingleCondition(StringBuilder sb, AttributeCondition attributeCondition, Object argument, String op, String negativeOp) { appendAttributePath(sb, attributeCondition); sb.append(' '); sb.append(attributeCondition.isNegated() ? negativeOp : op); sb.append(' '); appendArgument(sb, argument); return sb; }
private StringBuilder appendSingleCondition(StringBuilder sb, AttributeCondition attributeCondition, Object argument, String op, String negativeOp) { appendAttributePath(sb, attributeCondition); sb.append(' '); sb.append(attributeCondition.isNegated() ? negativeOp : op); sb.append(' '); appendArgument(sb, argument); return sb; }
@Override public String visit(IsNullOperator operator) { StringBuilder sb = new StringBuilder(); appendAttributePath(sb, operator.getAttributeCondition()); sb.append(" IS "); if (operator.getAttributeCondition().isNegated()) { sb.append("NOT "); } sb.append("NULL"); return sb.toString(); }
@Override public String visit(IsNullOperator operator) { StringBuilder sb = new StringBuilder(); appendAttributePath(sb, operator.getAttributeCondition()); sb.append(" IS "); if (operator.getAttributeCondition().isNegated()) { sb.append("NOT "); } sb.append("NULL"); return sb.toString(); }
@Override public String visit(LikeOperator operator) { StringBuilder sb = new StringBuilder(); appendAttributePath(sb, operator.getAttributeCondition()); sb.append(' '); if (operator.getAttributeCondition().isNegated()) { sb.append("NOT "); } sb.append("LIKE "); appendArgument(sb, operator.getArgument()); return sb.toString(); }
@Override public String visit(LikeOperator operator) { StringBuilder sb = new StringBuilder(); appendAttributePath(sb, operator.getAttributeCondition()); sb.append(' '); if (operator.getAttributeCondition().isNegated()) { sb.append("NOT "); } sb.append("LIKE "); appendArgument(sb, operator.getArgument()); return sb.toString(); }
@Override public String visit(InOperator operator) { StringBuilder sb = new StringBuilder(); appendAttributePath(sb, operator.getAttributeCondition()); if (operator.getAttributeCondition().isNegated()) { sb.append(" NOT"); } sb.append(" IN "); appendArgument(sb, operator.getArgument()); return sb.toString(); }
@Override public String visit(InOperator operator) { StringBuilder sb = new StringBuilder(); appendAttributePath(sb, operator.getAttributeCondition()); if (operator.getAttributeCondition().isNegated()) { sb.append(" NOT"); } sb.append(" IN "); appendArgument(sb, operator.getArgument()); return sb.toString(); }
appendAttributePath(sb, (PathExpression) argument); return;
appendAttributePath(sb, (PathExpression) argument); return;
sb.append(", "); appendAttributePath(sb, projection); sb.append(", "); appendAttributePath(sb, sortCriteria.getAttributePath()); sb.append(' ').append(sortCriteria.getSortOrder().name());
sb.append(", "); appendAttributePath(sb, projection); sb.append(", "); appendAttributePath(sb, sortCriteria.getAttributePath()); sb.append(' ').append(sortCriteria.getSortOrder().name());
@Override public String visit(BetweenOperator operator) { StringBuilder sb = new StringBuilder(); ValueRange range = operator.getArgument(); if (!range.isIncludeLower() || !range.isIncludeUpper()) { // if any of the bounds are not included then we cannot use BETWEEN and need to resort to comparison appendAttributePath(sb, operator.getAttributeCondition()); sb.append(operator.getAttributeCondition().isNegated() ? (range.isIncludeLower() ? " < " : " <= ") : (range.isIncludeLower() ? " >= " : " > ")); appendArgument(sb, range.getFrom()); sb.append(operator.getAttributeCondition().isNegated() ? " OR " : " AND "); appendAttributePath(sb, operator.getAttributeCondition()); sb.append(operator.getAttributeCondition().isNegated() ? (range.isIncludeUpper() ? " > " : " >= ") : (range.isIncludeUpper() ? " <= " : " < ")); appendArgument(sb, range.getTo()); } else { // if the bounds are included then we can use BETWEEN if (operator.getAttributeCondition().isNegated()) { sb.append("NOT "); } appendAttributePath(sb, operator.getAttributeCondition()); sb.append(" BETWEEN "); appendArgument(sb, range.getFrom()); sb.append(" AND "); appendArgument(sb, range.getTo()); } return sb.toString(); }
sb.append('('); appendAttributePath(sb, operator.getAttributeCondition()); sb.append(operator.getAttributeCondition().isNegated() ? (range.isIncludeLower() ? " < " : " <= ") : (range.isIncludeLower() ? " >= " : " > ")); sb.append(operator.getAttributeCondition().isNegated() ? " OR " : " AND "); appendAttributePath(sb, operator.getAttributeCondition()); sb.append(operator.getAttributeCondition().isNegated() ? (range.isIncludeUpper() ? " > " : " >= ") : (range.isIncludeUpper() ? " <= " : " < ")); sb.append("NOT "); appendAttributePath(sb, operator.getAttributeCondition()); sb.append(" BETWEEN "); appendArgument(sb, range.getFrom());