private void addAll(ModelObject modelObject, Model model) { if (!model.contains(modelObject)) { model.add(modelObject); modelObject.setModel(model); for (ModelObject refFrom : modelObject.getReferencesFrom()) { addAll(refFrom, model); } for (ModelObject refTo : modelObject.getReferencesTo()) { addAll(refTo, model); } } }
private void floodFill( SubModel subModel, ModelObject firstUnlabelled, Set<ModelObject> unplaced, Set<ModelObject> todo) { subModel.add(firstUnlabelled); unplaced.remove(firstUnlabelled); for (ModelObject object : firstUnlabelled.getReferencesTo()) { if (!subModel.contains(object)) { if (!todo.contains(object)) { todo.add(object); } } } for (ModelObject object : firstUnlabelled.getReferencesFrom()) { if (!subModel.contains(object)) { if (!todo.contains(object)) { todo.add(object); } } } }