private JsonNode projectObjectField(JsonNode fieldNode, ObjectNode ret, Path fieldPath, JsonNodeCursor cursor, Projector projector, FieldTreeNode mdContext, Path contextPath, JsonNodeFactory factory, QueryEvaluationContext ctx) {
if (fieldNode instanceof ObjectNode) {
LOGGER.debug("projecting object node {}",fieldPath);
if (cursor.firstChild()) {
ObjectNode newNode = projectObject(projector, factory, mdContext, contextPath, cursor, ctx);
ret.set(fieldPath.tail(0), newNode);
cursor.parent();
} else {
ret.set(fieldPath.tail(0), factory.objectNode());
}
} else {
LOGGER.warn("Expecting object node, found {} for {}", fieldNode.getClass().getName(), fieldPath);
}
return null;
}