in 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);
}
}