code: private String constructNodePath(String parentNodePath, int currentPosition) {
      StringBuilder nodePathStringBuilder = new StringBuilder();
      if (!StringUtils.isEmpty(parentNodePath))
        nodePathStringBuilder.append(parentNodePath).append('.');
      nodePathStringBuilder
          .append(currentPosition)
          .append('[')
          .append(nodePathStringBuilder.toString().split("\\.").length - 1)
          .append(']');
      return nodePathStringBuilder.toString();
    }
docs: Constructs the node path string for a child node
  
  @param parentNodePath node path string of the node's parent
  @param currentPosition position of the node in the parent's child list
  @return node path string