private Object[] getNewAndArgs(Node nodeTest, List<Node> predResult,
			String op) {
		// TODO Auto-generated method stub
		NodeTest[] args = ((NodeTest) nodeTest).getFunctionCalls().get(op);
		List<NodeTest> newArgs = new ArrayList<>();
		List<Node> predResultBackList = new ArrayList<>();
		for (NodeTest arg : args) {
			NodeTest ret = new NodeTest();
			boolean val = false;
			ret.setNodeType(NODE_TYPE_BOOLEAN);

			if (arg.getNodeType() == NODE_TYPE_RELATIVE_LOCATIONPATH) {
				if (((NodeTest) arg).getFunctionCalls().size() > 0) {

					if (((NodeTest) arg).getFunctionCalls().containsKey(
							"lessThan")) {

						List<NodeTest[]> newArgs1 = getNewNotEqualArgs(arg,
								predResult, "lessThan");
						for (NodeTest[] args1 : newArgs1) {
							ret = ((NodeTest) lessThan(args1[0], args1[1]));
						}
					}

					if (((NodeTest) arg).getFunctionCalls().containsKey(
							"greaterThan")) {

						List<NodeTest[]> newArgs1 = getNewNotEqualArgs(arg,
								predResult, "greaterThan");
						for (NodeTest[] args1 : newArgs1) {
							ret = (NodeTest) greaterThan(args1[0], args1[1]);
						}
					}
					if (((NodeTest) arg).getFunctionCalls().containsKey(
							FUNCTION_NOT + "")) {

						List<NodeTest[]> newArgs1 = getNewNotEqualArgs(arg,
								predResult, FUNCTION_NOT + "");
						NodeTest rest = new NodeTest();
						if (newArgs1.size() > 1) {
							rest.setNodeType(NODE_TYPE_BOOLEAN);

						} else {
							rest.setNodeValue(Utils.asString(true));

						}
						ret = rest;
					}

				} else {
					predResultBackList = (List<Node>) locationPath(predResult,
							arg.getSteps());
					ret.setNodeValue(Utils.asString(predResultBackList.size() > 0));
				}

			} else {
				ret = arg;
			}

			newArgs.add(ret);
		}

		return newArgs.toArray();
	}