@NotNull
    private Node<T> addChild(final Interner<String> table, final String text, final int nameStartIndex, final int nameEndIndex) {
      if (myChildren == null) {
        myChildren = new HashMap<>(3, 0.95f);
      }

      Node<T> newChild = new Node<>();
      final String key = table.intern(text.substring(nameStartIndex, nameEndIndex));
      myChildren.put(key, newChild);

      if (nameEndIndex == text.length()) {
        return newChild;
      }

      Node<T> restNodes = newChild.findRelative(text, nameEndIndex + 1, true, table);
      assert restNodes != null;
      return restNodes;
    }
@NotNull
    private Node<T> addChild(final Interner<String> table, final String text, final int nameStartIndex, final int nameEndIndex)