public String checkCyclicOrgGroupReference(OrgGroup orgGroup, String refID) { String result = null; List<String> hierarchy = new ArrayList<String>(); hierarchy.add(orgGroup.getGroupName()); OrgGroup owner = getOrgGroup(refID); String refName = owner.getGroupName(); // name of group attempting to add to while (owner != null) { hierarchy.add(owner.getGroupName()); if (owner.equals(orgGroup)) { result = constructCyclicAttributeErrorMessage(hierarchy, "org group", refName); break; } owner = owner.getBelongsTo(); } return result; }
public synchronized void removeOrgGroup(OrgGroup o) { if (isDataEditable(ResUnit.OrgGroup)) { for (Position position : getPositions()) { OrgGroup group = position.getOrgGroup(); if ((group != null) && group.getID().equals(o.getID())) { position.setOrgGroup((OrgGroup) null); getDataSource(ResUnit.Position).update(position); } } for (OrgGroup group : getOrgGroups()) { OrgGroup owner = group.getBelongsTo(); if ((owner != null) && owner.getID().equals(o.getID())) { group.setBelongsTo((OrgGroup) null); getDataSource(ResUnit.OrgGroup).update(group); } } delOrgGroup(o); getDataSource(ResUnit.OrgGroup).delete(o); } }