private synchronized void removeChild()

in tooling/rib-intellij-plugin/native/intellij-broadcast-rib/src/main/java/com/uber/debug/broadcast/rib/RibHierarchyDebugBroadcastHandler.java [304:326]


  private synchronized void removeChild(UUID parentId, UUID childId) {
    if (!children.containsKey(parentId)) {
      throw new IllegalArgumentException();
    }
    List list = children.get(parentId);
    if (!list.contains(childId)) {
      throw new IllegalArgumentException("child not already added");
    }
    if (!parent.containsKey(childId)) {
      throw new IllegalArgumentException("parent not set");
    }

    list.remove(childId);
    if (list.isEmpty()) {
      children.remove(parentId);
      roots.remove(parentId);
    }
    parent.remove(childId);

    if (highlightId.equals(childId)) {
      setOverlayVisibility(highlightId, false);
    }
  }