@Override public boolean evaluate(QueryEvaluationContext ctx) { boolean ret = false; JsonNode node = ctx.getNode(field); if (node instanceof ArrayNode) { ArrayNode array = (ArrayNode) node; int index = 0; QueryEvaluationContext nestedCtx = null; for (Iterator<JsonNode> itr = array.elements(); itr.hasNext();) { JsonNode arrayElem = itr.next(); if (index == 0) { nestedCtx = ctx.firstElementNestedContext(arrayElem, field); } else { nestedCtx.elementNestedContext(arrayElem, index); } if (ev.evaluate(nestedCtx)) { ret = true; } index++; } } ctx.setResult(ret); return ret; } }
@Override public boolean evaluate(QueryEvaluationContext ctx) { boolean ret = false; KeyValueCursor<Path, JsonNode> cursor = ctx.getNodes(field); while(cursor.hasNext()&&!ret) { cursor.next(); JsonNode node=cursor.getCurrentValue(); if (node instanceof ArrayNode) { ArrayNode array = (ArrayNode) node; int index = 0; QueryEvaluationContext nestedCtx = null; for (Iterator<JsonNode> itr = array.elements(); itr.hasNext();) { JsonNode arrayElem = itr.next(); if (index == 0) { nestedCtx = ctx.firstElementNestedContext(arrayElem, field); } else { nestedCtx.elementNestedContext(arrayElem, index); } if (ev.evaluate(nestedCtx)) { ret = true; } index++; } } } ctx.setResult(ret); return ret; } }
@Override public boolean evaluate(QueryEvaluationContext ctx) { boolean ret = false; KeyValueCursor<Path, JsonNode> cursor = ctx.getNodes(field); while(cursor.hasNext()&&!ret) { cursor.next(); JsonNode node=cursor.getCurrentValue(); if (node instanceof ArrayNode) { ArrayNode array = (ArrayNode) node; int index = 0; QueryEvaluationContext nestedCtx = null; for (Iterator<JsonNode> itr = array.elements(); itr.hasNext();) { JsonNode arrayElem = itr.next(); if (index == 0) { nestedCtx = ctx.firstElementNestedContext(arrayElem, field); } else { nestedCtx.elementNestedContext(arrayElem, index); } if (ev.evaluate(nestedCtx)) { ret = true; } index++; } } } ctx.setResult(ret); return ret; } }