/** * 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; }
if (nodeE.getOperation() == QueryExpression.SUBSTRING) { QueryEvaluable arg1 = nodeE.getArg1(); QueryEvaluable arg2 = nodeE.getArg2(); QueryEvaluable arg3 = nodeE.getArg3(); } else if (nodeE.getOperation() == QueryExpression.INDEX_OF) { QueryEvaluable arg1 = nodeE.getArg1(); QueryEvaluable arg2 = nodeE.getArg2(); queryEvaluableToString(buffer, nodeE.getArg1(), q, state); buffer.append(","); queryEvaluableToString(buffer, nodeE.getArg2(), q, state); buffer.append(")"); } else if (nodeE.getOperation() == QueryExpression.LEAST) { queryEvaluableToString(buffer, nodeE.getArg1(), q, state); buffer.append(","); queryEvaluableToString(buffer, nodeE.getArg2(), q, state); buffer.append(")"); } else { QueryEvaluable arg1 = nodeE.getArg1(); QueryEvaluable arg2 = nodeE.getArg2(); String op = null; switch (nodeE.getOperation()) {
if (nodeE.getOperation() == QueryExpression.SUBSTRING) { QueryEvaluable arg1 = nodeE.getArg1(); QueryEvaluable arg2 = nodeE.getArg2(); QueryEvaluable arg3 = nodeE.getArg3(); } else if (nodeE.getOperation() == QueryExpression.INDEX_OF) { QueryEvaluable arg1 = nodeE.getArg1(); QueryEvaluable arg2 = nodeE.getArg2(); queryEvaluableToString(buffer, nodeE.getArg1(), q, state); buffer.append(","); queryEvaluableToString(buffer, nodeE.getArg2(), q, state); buffer.append(")"); } else if (nodeE.getOperation() == QueryExpression.LEAST) { queryEvaluableToString(buffer, nodeE.getArg1(), q, state); buffer.append(","); queryEvaluableToString(buffer, nodeE.getArg2(), q, state); buffer.append(")"); } else { QueryEvaluable arg1 = nodeE.getArg1(); QueryEvaluable arg2 = nodeE.getArg2(); String op = null; switch (nodeE.getOperation()) {
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.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); + qe.getOperation())); retval += nodeToString(q, qe.getArg2(), parameters, null); return retval;
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.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); + qe.getOperation())); retval += nodeToString(q, qe.getArg2(), parameters, null); return retval;
return new QueryExpression((QueryEvaluable) cloneThing(origE.getArg1(), fromElementMap, qopeMap), (QueryEvaluable) cloneThing(origE.getArg2(), fromElementMap, qopeMap), (QueryEvaluable) cloneThing(origE.getArg3(), fromElementMap, qopeMap)); } else if ((origE.getOperation() == QueryExpression.LOWER) || (origE.getOperation() cloneThing(origE.getArg1(), fromElementMap, qopeMap), origE.getOperation(), (QueryEvaluable) cloneThing(origE.getArg2(), fromElementMap, qopeMap));
return new QueryExpression((QueryEvaluable) cloneThing(origE.getArg1(), fromElementMap, qopeMap), (QueryEvaluable) cloneThing(origE.getArg2(), fromElementMap, qopeMap), (QueryEvaluable) cloneThing(origE.getArg3(), fromElementMap, qopeMap)); } else if ((origE.getOperation() == QueryExpression.LOWER) || (origE.getOperation() cloneThing(origE.getArg1(), fromElementMap, qopeMap), origE.getOperation(), (QueryEvaluable) cloneThing(origE.getArg2(), fromElementMap, qopeMap));
QueryExpression qe = (QueryExpression) o; QueryEvaluable arg1 = qe.getArg1(); QueryEvaluable arg2 = qe.getArg2(); QueryEvaluable arg3 = qe.getArg3(); boolean[] s = whereHavingSafe(arg1, q);
QueryExpression qe = (QueryExpression) o; QueryEvaluable arg1 = qe.getArg1(); QueryEvaluable arg2 = qe.getArg2(); QueryEvaluable arg3 = qe.getArg3(); boolean[] s = whereHavingSafe(arg1, q);