@NotNull
  private GroupNode insertGroupNode(@NotNull UsageGroup group,
                                    int ruleIndex,
                                    @NotNull Consumer<? super UsageViewImpl.NodeChange> edtModelToSwingNodeChangesQueue) {
    synchronized (this) {
      GroupNode newNode = new GroupNode(this, group, ruleIndex);
      int i = getNodeIndex(newNode, this.myChildren);
      if (i >= 0) {
        return (GroupNode)this.myChildren.get(i);
      }
      int insertionIndex = -i - 1;
      this.myChildren.add(insertionIndex, newNode);
      edtModelToSwingNodeChangesQueue.consume(new UsageViewImpl.NodeChange(UsageViewImpl.NodeChangeType.ADDED, this,
                                                                           newNode));
      return newNode;
    }
  }
@NotNull
  private GroupNode insertGroupNode(@NotNull UsageGroup group,
                                    int ruleIndex,
                                    @NotNull Consumer<? super UsageViewImpl.NodeChange> edtModelToSwingNodeChangesQueue)