// traverse
node.childrenAccept(this, rqn);
// check if string transformation is valid
rqn.acceptOperands(new DefaultQueryNodeVisitor() {
public Object visit(PropertyFunctionQueryNode node, Object data) {
String functionName = node.getFunctionName();
if ((functionName.equals(PropertyFunctionQueryNode.LOWER_CASE)
|| functionName.equals(PropertyFunctionQueryNode.UPPER_CASE))
&& rqn.getValueType() != QueryConstants.TYPE_STRING) {