public OrgType orgType(String name, boolean autoCreate, Session session) { OrgType ot = orgType(name); if (ot == null) { if (autoCreate) { if (getOrgTypes() == null) { setOrgTypes(new ArrayList<>()); } ot = new OrgType(); ot.setName(name); ot.setDisplayName(name); ot.setOrganisation(this); getOrgTypes().add(ot); session.save(this); session.save(ot); } } return ot; }
public OrgType createOrgType(String name, Session session) { OrgType existing = orgType(name); if (existing != null) { throw new RuntimeException("An organisation type with that name already exists"); } Organisation parent = getOrganisation(); while (parent != null) { if (parent.orgType(name) != null) { throw new RuntimeException( "An organisation type with that name exists in a parent organisation: " + parent.getOrgId()); } parent = parent.getOrganisation(); } OrgType ot = new OrgType(); ot.setName(name); ot.setDisplayName(name); ot.setOrganisation(this); getOrgTypes().add(ot); session.save(this); session.save(ot); return ot; }