/** * Descends into QueryExpression and QueryFunction objects to find * all instances of QueryField. Will return a single element * set for QueryField and an empty set for QueryValue. * * @param qe a QueryEvalubale to find QueryFields for * @return a set of QueryFields */ protected static Set<QueryField> getQueryFields(QueryEvaluable qe) { Set<QueryField> fields = new HashSet<QueryField>(); if (qe instanceof QueryField) { fields.add((QueryField) qe); } else if (qe instanceof QueryFunction) { fields.addAll(getQueryFields(((QueryFunction) qe).getParam())); } else if (qe instanceof QueryExpression) { fields.addAll(getQueryFields(((QueryExpression) qe).getArg1())); fields.addAll(getQueryFields(((QueryExpression) qe).getArg2())); fields.addAll(getQueryFields(((QueryExpression) qe).getArg3())); } return fields; }
/** * Descends into QueryExpression and QueryFunction objects to find * all instances of QueryField. Will return a single element * set for QueryField and an empty set for QueryValue. * * @param qe a QueryEvalubale to find QueryFields for * @return a set of QueryFields */ protected static Set<QueryField> getQueryFields(QueryEvaluable qe) { Set<QueryField> fields = new HashSet<QueryField>(); if (qe instanceof QueryField) { fields.add((QueryField) qe); } else if (qe instanceof QueryFunction) { fields.addAll(getQueryFields(((QueryFunction) qe).getParam())); } else if (qe instanceof QueryExpression) { fields.addAll(getQueryFields(((QueryExpression) qe).getArg1())); fields.addAll(getQueryFields(((QueryExpression) qe).getArg2())); fields.addAll(getQueryFields(((QueryExpression) qe).getArg3())); } return fields; }
List<Object> parameters) { if (qe.getOperation() == QueryExpression.SUBSTRING) { return "SUBSTR(" + nodeToString(q, qe.getArg1(), parameters, null) + ", " + nodeToString(q, qe.getArg2(), parameters, null) + (qe.getArg3() == null ? "" : ", " + nodeToString(q, qe.getArg3(), parameters, null)) + ")"; } else if (qe.getOperation() == QueryExpression.INDEX_OF) { return "INDEXOF(" + nodeToString(q, qe.getArg1(), parameters, null) + ", " + nodeToString(q, qe.getArg2(), parameters, null) + ")"; } else if (qe.getOperation() == QueryExpression.UPPER) { return "UPPER(" + nodeToString(q, qe.getArg1(), parameters, null) + ")"; } else if (qe.getOperation() == QueryExpression.LOWER) { return "LOWER(" + nodeToString(q, qe.getArg1(), parameters, null) + ")"; } else if (qe.getOperation() == QueryExpression.GREATEST) { return "GREATEST(" + nodeToString(q, qe.getArg1(), parameters, null) + "," + nodeToString(q, qe.getArg2(), parameters, null) + ")"; } else if (qe.getOperation() == QueryExpression.LEAST) { return "LEAST(" + nodeToString(q, qe.getArg1(), parameters, null) + "," + nodeToString(q, qe.getArg2(), parameters, null) + ")"; } else { String retval = nodeToString(q, qe.getArg1(), parameters, null); switch (qe.getOperation()) { case QueryExpression.ADD:
List<Object> parameters) { if (qe.getOperation() == QueryExpression.SUBSTRING) { return "SUBSTR(" + nodeToString(q, qe.getArg1(), parameters, null) + ", " + nodeToString(q, qe.getArg2(), parameters, null) + (qe.getArg3() == null ? "" : ", " + nodeToString(q, qe.getArg3(), parameters, null)) + ")"; } else if (qe.getOperation() == QueryExpression.INDEX_OF) { return "INDEXOF(" + nodeToString(q, qe.getArg1(), parameters, null) + ", " + nodeToString(q, qe.getArg2(), parameters, null) + ")"; } else if (qe.getOperation() == QueryExpression.UPPER) { return "UPPER(" + nodeToString(q, qe.getArg1(), parameters, null) + ")"; } else if (qe.getOperation() == QueryExpression.LOWER) { return "LOWER(" + nodeToString(q, qe.getArg1(), parameters, null) + ")"; } else if (qe.getOperation() == QueryExpression.GREATEST) { return "GREATEST(" + nodeToString(q, qe.getArg1(), parameters, null) + "," + nodeToString(q, qe.getArg2(), parameters, null) + ")"; } else if (qe.getOperation() == QueryExpression.LEAST) { return "LEAST(" + nodeToString(q, qe.getArg1(), parameters, null) + "," + nodeToString(q, qe.getArg2(), parameters, null) + ")"; } else { String retval = nodeToString(q, qe.getArg1(), parameters, null); switch (qe.getOperation()) { case QueryExpression.ADD:
QueryExpression nodeE = (QueryExpression) node; if (nodeE.getOperation() == QueryExpression.SUBSTRING) { QueryEvaluable arg1 = nodeE.getArg1(); QueryEvaluable arg2 = nodeE.getArg2(); QueryEvaluable arg3 = nodeE.getArg3(); QueryEvaluable arg1 = nodeE.getArg1(); QueryEvaluable arg2 = nodeE.getArg2(); } else if (nodeE.getOperation() == QueryExpression.LOWER) { buffer.append("LOWER("); queryEvaluableToString(buffer, nodeE.getArg1(), q, state); buffer.append(")"); } else if (nodeE.getOperation() == QueryExpression.UPPER) { buffer.append("UPPER("); queryEvaluableToString(buffer, nodeE.getArg1(), q, state); buffer.append(")"); } else if (nodeE.getOperation() == QueryExpression.GREATEST) { buffer.append("GREATEST("); queryEvaluableToString(buffer, nodeE.getArg1(), q, state); buffer.append(","); queryEvaluableToString(buffer, nodeE.getArg2(), q, state); } else if (nodeE.getOperation() == QueryExpression.LEAST) { buffer.append("LEAST("); queryEvaluableToString(buffer, nodeE.getArg1(), q, state); buffer.append(","); queryEvaluableToString(buffer, nodeE.getArg2(), q, state); buffer.append(")");
QueryExpression nodeE = (QueryExpression) node; if (nodeE.getOperation() == QueryExpression.SUBSTRING) { QueryEvaluable arg1 = nodeE.getArg1(); QueryEvaluable arg2 = nodeE.getArg2(); QueryEvaluable arg3 = nodeE.getArg3(); QueryEvaluable arg1 = nodeE.getArg1(); QueryEvaluable arg2 = nodeE.getArg2(); } else if (nodeE.getOperation() == QueryExpression.LOWER) { buffer.append("LOWER("); queryEvaluableToString(buffer, nodeE.getArg1(), q, state); buffer.append(")"); } else if (nodeE.getOperation() == QueryExpression.UPPER) { buffer.append("UPPER("); queryEvaluableToString(buffer, nodeE.getArg1(), q, state); buffer.append(")"); } else if (nodeE.getOperation() == QueryExpression.GREATEST) { buffer.append("GREATEST("); queryEvaluableToString(buffer, nodeE.getArg1(), q, state); buffer.append(","); queryEvaluableToString(buffer, nodeE.getArg2(), q, state); } else if (nodeE.getOperation() == QueryExpression.LEAST) { buffer.append("LEAST("); queryEvaluableToString(buffer, nodeE.getArg1(), q, state); buffer.append(","); queryEvaluableToString(buffer, nodeE.getArg2(), q, state); buffer.append(")");
if ((origE.getOperation() == QueryExpression.SUBSTRING) && (origE.getArg3() != null)) { return new QueryExpression((QueryEvaluable) cloneThing(origE.getArg1(), fromElementMap, qopeMap), (QueryEvaluable) cloneThing(origE.getArg2(), fromElementMap, qopeMap), (QueryEvaluable) cloneThing(origE.getArg3(), fromElementMap, qopeMap)); == QueryExpression.UPPER)) { return new QueryExpression(origE.getOperation(), (QueryEvaluable) cloneThing(origE.getArg1(), fromElementMap, qopeMap)); } else { return new QueryExpression((QueryEvaluable) cloneThing(origE.getArg1(), fromElementMap, qopeMap), origE.getOperation(), (QueryEvaluable) cloneThing(origE.getArg2(), fromElementMap, qopeMap));
if ((origE.getOperation() == QueryExpression.SUBSTRING) && (origE.getArg3() != null)) { return new QueryExpression((QueryEvaluable) cloneThing(origE.getArg1(), fromElementMap, qopeMap), (QueryEvaluable) cloneThing(origE.getArg2(), fromElementMap, qopeMap), (QueryEvaluable) cloneThing(origE.getArg3(), fromElementMap, qopeMap)); == QueryExpression.UPPER)) { return new QueryExpression(origE.getOperation(), (QueryEvaluable) cloneThing(origE.getArg1(), fromElementMap, qopeMap)); } else { return new QueryExpression((QueryEvaluable) cloneThing(origE.getArg1(), fromElementMap, qopeMap), origE.getOperation(), (QueryEvaluable) cloneThing(origE.getArg2(), fromElementMap, qopeMap));
checkQueryNodes(msg + ": first QueryEvaluables are not equal", qe1.getArg1(), qe2.getArg1(), q1, q2); checkQueryNodes(msg + ": second QueryEvaluables are not equal", qe1.getArg2(), qe2.getArg2(), q1, q2); checkQueryNodes(msg + ": third QueryEvaluables are not equal", qe1.getArg3(), qe2.getArg3(), q1, q2);
} else if (o instanceof QueryExpression) { QueryExpression qe = (QueryExpression) o; QueryEvaluable arg1 = qe.getArg1(); QueryEvaluable arg2 = qe.getArg2(); QueryEvaluable arg3 = qe.getArg3();
} else if (o instanceof QueryExpression) { QueryExpression qe = (QueryExpression) o; QueryEvaluable arg1 = qe.getArg1(); QueryEvaluable arg2 = qe.getArg2(); QueryEvaluable arg3 = qe.getArg3();