@Override public String visit(LtOperator operator) { return appendSingleCondition(new StringBuilder(), operator.getAttributeCondition(), operator.getArgument(), "<", ">=").toString(); }
@Override public String visit(EqOperator operator) { return appendSingleCondition(new StringBuilder(), operator.getAttributeCondition(), operator.getArgument(), "=", "!=").toString(); }
@Override public String visit(GteOperator operator) { return appendSingleCondition(new StringBuilder(), operator.getAttributeCondition(), operator.getArgument(), ">=", "<").toString(); }
@Override public String visit(LtOperator operator) { return appendSingleCondition(new StringBuilder(), operator.getAttributeCondition(), operator.getArgument(), "<", ">=").toString(); }
@Override public String visit(EqOperator operator) { return appendSingleCondition(new StringBuilder(), operator.getAttributeCondition(), operator.getArgument(), "=", "!=").toString(); }
@Override public String visit(GtOperator operator) { return appendSingleCondition(new StringBuilder(), operator.getAttributeCondition(), operator.getArgument(), ">", "<=").toString(); }
@Override public String visit(LteOperator operator) { return appendSingleCondition(new StringBuilder(), operator.getAttributeCondition(), operator.getArgument(), "<=", ">").toString(); }
@Override public String visit(GteOperator operator) { return appendSingleCondition(new StringBuilder(), operator.getAttributeCondition(), operator.getArgument(), ">=", "<").toString(); }
@Override public String visit(ContainsOperator operator) { return appendSingleCondition(new StringBuilder(), operator.getAttributeCondition(), operator.getArgument(), "=", "!=").toString(); }
@Override public String visit(GtOperator operator) { return appendSingleCondition(new StringBuilder(), operator.getAttributeCondition(), operator.getArgument(), ">", "<=").toString(); }
@Override public String visit(LteOperator operator) { return appendSingleCondition(new StringBuilder(), operator.getAttributeCondition(), operator.getArgument(), "<=", ">").toString(); }
@Override public String visit(ContainsOperator operator) { return appendSingleCondition(new StringBuilder(), operator.getAttributeCondition(), operator.getArgument(), "=", "!=").toString(); }
private String generateMultipleCondition(OperatorAndArgument operator, String booleanOperator) { Object argument = operator.getArgument(); Collection values; if (argument instanceof Collection) { values = (Collection) argument; } else if (argument instanceof Object[]) { values = Arrays.asList((Object[]) argument); } else { throw log.expectingCollectionOrArray(); } StringBuilder sb = new StringBuilder(); boolean isFirst = true; for (Object value : values) { if (isFirst) { isFirst = false; } else { sb.append(' ').append(booleanOperator).append(' '); } appendSingleCondition(sb, operator.getAttributeCondition(), value, "=", "!="); } return sb.toString(); }
private String generateMultipleBooleanCondition(OperatorAndArgument operator, String booleanOperator, Class<? extends BooleanCondition> expectedParentClass) { Object argument = operator.getArgument(); Collection values; if (argument instanceof Collection) { values = (Collection) argument; } else if (argument instanceof Object[]) { values = Arrays.asList((Object[]) argument); } else { throw log.expectingCollectionOrArray(); } StringBuilder sb = new StringBuilder(); boolean wrap = parentIsNotOfClass(operator.getAttributeCondition(), expectedParentClass); if (wrap) { sb.append('('); } boolean isFirst = true; for (Object value : values) { if (isFirst) { isFirst = false; } else { sb.append(' ').append(booleanOperator).append(' '); } appendSingleCondition(sb, operator.getAttributeCondition(), value, "=", "!="); } if (wrap) { sb.append(')'); } return sb.toString(); }