private KoodiType lookupKoodiType(String koodiUri, Integer koodiVersion) { List<KoodiType> koodis = null; try { koodis = koodiService.searchKoodis(buildCriteria(koodiUri, koodiVersion)); } catch (Exception e) { log.warn("{}, version uri :'{}'", e.getMessage(), koodiUri + "#" + koodiVersion); } if (koodis == null || koodis.isEmpty()) { return null; } else if (koodis.size() > 1) { throw new IllegalStateException("multiple koodis returned for uri: " + koodiUri + ", koodiVersion: " + koodiVersion); } KoodiType koodi = koodis.get(0); if (koodi.getTila() != TilaType.HYVAKSYTTY) { throw new IllegalStateException("koodi has invalid state, uri: " + koodiUri + ", koodiVersion: " + koodiVersion + ", state: " + koodi.getTila()); } return koodi; }
@Override public KoodiValue searchKoodiRelation(final String uri) { VersionedUri parse = VersionedUri.parse(uri); KoodiType lookupKoodiType = lookupKoodiType(parse.getUri(), parse.getVersio()); KoodiUriAndVersioType koodiVersionType = new KoodiUriAndVersioType(); final String koodiUri = lookupKoodiType.getKoodiUri(); final int koodiVersion = lookupKoodiType.getVersio(); koodiVersionType.setKoodiUri(koodiUri); koodiVersionType.setVersio(koodiVersion); List<KoodiType> koodis = null; try { koodis = koodiService.listKoodiByRelation(koodiVersionType, true, SuhteenTyyppiType.SISALTYY); } catch (Exception e) { log.warn("{}, version uri :'{}'", e.getMessage(), koodiUri + "#" + koodiVersion); } if (koodis == null || koodis.isEmpty()) { return null; } else if (koodis.size() > 1) { throw new IllegalStateException("multiple koodis returned for uri: " + koodiUri + ", koodiVersion: " + koodiVersion); } KoodiType koodi = koodis.get(0); if (koodi.getTila() != TilaType.HYVAKSYTTY) { throw new IllegalStateException("koodi has invalid state, uri: " + koodiUri + ", koodiVersion: " + koodiVersion + ", state: " + koodi.getTila()); } return new KoodiValueImpl(lookupKoodiType(koodiUri, koodiVersion)); }
for (KoodiType ylakoodi : ylakoodit) { if (ylakoodi.getKoodisto().getKoodistoUri().equals("oppilaitosnumero") && !ylakoodi.getTila().equals(TilaType.PASSIIVINEN) ) { if (j++ >= fetchLimit) { break;
for (KoodiType ylakoodi : ylakoodit) { if (ylakoodi.getKoodisto().getKoodistoUri().equals("oppilaitosnumero") && !ylakoodi.getTila().equals(TilaType.PASSIIVINEN)) { if (j++ >= fetchLimit) { break;