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: retval += " + "; default: throw (new IllegalArgumentException("Invalid QueryExpression operation: " + qe.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.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: retval += " + "; default: throw (new IllegalArgumentException("Invalid QueryExpression operation: " + qe.getOperation()));
if (nodeE.getOperation() == QueryExpression.SUBSTRING) { QueryEvaluable arg1 = nodeE.getArg1(); QueryEvaluable arg2 = nodeE.getArg2(); } else if (nodeE.getOperation() == QueryExpression.INDEX_OF) { QueryEvaluable arg1 = nodeE.getArg1(); QueryEvaluable arg2 = nodeE.getArg2(); queryEvaluableToString(buffer, arg2, q, state); buffer.append(")"); } 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); queryEvaluableToString(buffer, nodeE.getArg2(), q, state); buffer.append(")"); } else if (nodeE.getOperation() == QueryExpression.LEAST) { buffer.append("LEAST("); queryEvaluableToString(buffer, nodeE.getArg1(), q, state); QueryEvaluable arg2 = nodeE.getArg2();
if (nodeE.getOperation() == QueryExpression.SUBSTRING) { QueryEvaluable arg1 = nodeE.getArg1(); QueryEvaluable arg2 = nodeE.getArg2(); } else if (nodeE.getOperation() == QueryExpression.INDEX_OF) { QueryEvaluable arg1 = nodeE.getArg1(); QueryEvaluable arg2 = nodeE.getArg2(); queryEvaluableToString(buffer, arg2, q, state); buffer.append(")"); } 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); queryEvaluableToString(buffer, nodeE.getArg2(), q, state); buffer.append(")"); } else if (nodeE.getOperation() == QueryExpression.LEAST) { buffer.append("LEAST("); queryEvaluableToString(buffer, nodeE.getArg1(), q, state); QueryEvaluable arg2 = nodeE.getArg2();
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)); } else if ((origE.getOperation() == QueryExpression.LOWER) || (origE.getOperation() == 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)); } else if ((origE.getOperation() == QueryExpression.LOWER) || (origE.getOperation() == 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));