private JsonNode getNode(final String path) {
JsonNode jsonNode = this.jsonNode;
final String[] keys = path.split("\\.");
for (final String key : keys) {
final PathNode pathNode = PathNode.parse(key);
if (!pathNode.getKey().isEmpty()) {
jsonNode = jsonNode.path(pathNode.getKey());
} else {
// pathNode is criteria only; don't change jsonNode
}
if (jsonNode.isNull()) {
return jsonNode;
}
if (!pathNode.hasCriteria()) {
continue;
}
if (!jsonNode.isArray()) {
return NullNode.getInstance();
}