/** * Updates the organisation reference and also any SubOrg links * * @param newParent * @param session */ public void setOrganisation(Organisation newParent, Session session) { log.info("setOrganisation: this=" + getOrgId()); Organisation oldParent = this.getOrganisation(); if (oldParent != null) { oldParent.getChildOrgs().remove(this); } if (newParent != null) { if (newParent.getChildOrgs() == null) { newParent.setChildOrgs(new ArrayList<Organisation>()); } newParent.getChildOrgs().add(this); } this.organisation = newParent; if (oldParent != null && oldParent != newParent) { log.info("update subs"); SubOrg.updateSubOrgs(this, SessionManager.session()); } if (oldParent != null) { session.save(oldParent); } if (newParent != null) { session.save(newParent); } session.save(this); log.info("finished move"); }