private OrganisaatioDTO save(OrganisaatioDTO organisaatio) { repo.add(organisaatio); oidParentOid.put(organisaatio.getOid(), organisaatio.getParentOid()); return organisaatio; }
@Override public List<OrganisaatioDTO> findChildrenTo(String oid) { List<OrganisaatioDTO> children = new ArrayList<OrganisaatioDTO>(); if (oid != null) { OrganisaatioDTO o = this.findByOid(oid); Collection<OrganisaatioDTO> allOrgs = findAll(); for (OrganisaatioDTO temp : allOrgs) { if ((temp != null) && (temp.getParentOid() != null) && temp.getParentOid().equals(oid)) { children.add(temp); } } } return children; }
@Override public List<OrganisaatioDTO> findParentsTo(String oid) { List<OrganisaatioDTO> path = new ArrayList<OrganisaatioDTO>(); if (oid != null) { OrganisaatioDTO o = findByOid(oid); List<OrganisaatioDTO> parentPath = findParentsTo(o.getParentOid()); for (OrganisaatioDTO temp : parentPath) { path.add(temp); } path.add(o); } return path; }
private String getOppilaitosnumero(HakukohdePerustieto curTulos, OrganisaatioDTO organisaatio) { if (organisaatio.getTyypit().contains(OrganisaatioTyyppi.OPPILAITOS)) { return String.format("%s", organisaatio.getOppilaitosKoodi()); } else if (organisaatio.getTyypit().contains(OrganisaatioTyyppi.OPETUSPISTE)) { return String.format("%s", organisaatioService.findByOid(organisaatio.getParentOid()).getOppilaitosKoodi()); } return StringUtils.leftPad("", 5); }
@Override public OrganisaatioOidListType findChildrenOidsByOid(OrganisaatioSearchOidType parameters) { System.out.println(String.format("mock searching children for '%s'", parameters.getSearchOid())); OrganisaatioOidListType response = new OrganisaatioOidListType(); HashSet<String> oids = new HashSet<String>(); final String theOid = parameters.getSearchOid(); oids.add(theOid); int oldCount = -1; while (oids.size() != oldCount) { oldCount = oids.size(); HashSet<String> additions = new HashSet<String>(); for (OrganisaatioDTO org : repo) { for (String oid : oids) { if (oid.equals(org.getParentOid()) && !oids.contains(org.getOid())) { additions.add(org.getOid()); } } } oids.addAll(additions); } for(String oid: oids) { if(theOid.equals(oid)) continue; OrganisaatioOidType oidType = new OrganisaatioOidType(); oidType.setOrganisaatioOid(oid); response.getOrganisaatioOidList().add(oidType); } return response; }