private synchronized void addChild()

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


  private synchronized void addChild(UUID parentId, UUID childId) {
    if (!children.containsKey(parentId)) {
      children.put(parentId, new ArrayList<>());
    }

    List list = children.get(parentId);
    if (list.contains(childId)) {
      throw new IllegalArgumentException("child already added");
    }
    if (parent.containsKey(childId)) {
      throw new IllegalArgumentException("parent already set");
    }

    list.add(childId);
    parent.put(childId, parentId);

    roots.remove(childId);
    if (!parent.containsKey(parentId) && !roots.contains(parentId)) {
      roots.add(parentId);
    }
  }