private Optional<DataSchemaNode> getCurrentNode(DataSchemaNode parent, final String buffer) { for (final String part : buffer.split(SEPARATOR)) { if (IOUtil.isQName(part) == false) { return Optional.of(parent); } final QName qName; try { qName = IOUtil.qNameFromKeyString(part, mappedModules); } catch (final ReadingException e) { return Optional.of(parent); } if (parent instanceof DataNodeContainer) { parent = ((DataNodeContainer) parent).getDataChildByName(qName); } else { // This should check if we are at the end of buffer ? return Optional.of(parent); } } return Optional.of(parent); }