/** * Construct versioned koodi uri (adds #version to the end of uri). * * @param koodiType * @return */ public static String createKoodiUriWithVersion(KoodiType koodiType) { return koodiType.getKoodiUri() + KOODI_URI_AND_VERSION_SEPARATOR + koodiType.getVersio(); }
public void cacheKoodisto(String koodisto, Integer version) { List<KoodiType> koodiTypes = cachingKoodistoClient.getKoodisForKoodisto(koodisto, version); for (KoodiType koodi : koodiTypes) { koodiMap.put(koodi.getKoodiUri() + "#" + koodi.getVersio(), koodi); // Also direct access without version (use latest code version) if (version == null) { koodiMap.put(koodi.getKoodiUri(), koodi); } } }
LOG.debug(" --> result, koodi {} has following relations to koodisto {}", koodiUri, targetKoodistoName); for (KoodiType koodiType : result) { LOG.debug("--> {}#{}", koodiType.getKoodiUri(), koodiType.getVersio());
protected KoodiType getSisaltyvaKoodi(KoodiType sourcekoodi, String targetKoodisto) { KoodiUriAndVersioType uriAndVersio = new KoodiUriAndVersioType(); uriAndVersio.setKoodiUri(sourcekoodi.getKoodiUri()); uriAndVersio.setVersio(sourcekoodi.getVersio()); List<KoodiType> relatedKoodis = koodiService.listKoodiByRelation(uriAndVersio, false, SuhteenTyyppiType.SISALTYY); for (KoodiType curKoodi : relatedKoodis) { if (curKoodi.getKoodisto().getKoodistoUri().equals(targetKoodisto)) { return curKoodi; } } return null; }
@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)); }
public static void addKausikoodiTiedot(SolrInputDocument doc, String kausikoodi, TarjontaKoodistoHelper koodistoHelper) { if (kausikoodi == null) { return; } KoodiType koodi = koodistoHelper.getKoodiByUri(kausikoodi); if (koodi != null) { KoodiMetadataType metadata = IndexDataUtils.getKoodiMetadataForLanguage(koodi, new Locale("fi")); add(doc, KAUSI_FI, metadata.getNimi()); metadata = IndexDataUtils.getKoodiMetadataForLanguage(koodi, new Locale("sv")); add(doc, KAUSI_SV, metadata.getNimi()); metadata = IndexDataUtils.getKoodiMetadataForLanguage(koodi, new Locale("en")); add(doc, KAUSI_EN, metadata.getNimi()); add(doc, KAUSI_URI, koodi.getKoodiUri() + IndexDataUtils.KOODI_URI_AND_VERSION_SEPARATOR + koodi.getVersio()); } }
@Override public Option apply(final KoodiType koodiType) { String version = withVersion ? "#" + koodiType.getVersio() : ""; return (Option) new OptionBuilder().setValue(koodiType.getKoodiUri() + version).i18nText(new I18nText(TranslationsUtil.createTranslationsMap(koodiType))).build(); } })));
protected KoodiType getRinnasteinenKoodi(KoodiType koulutuskoodi, String targetKoodisto) { KoodiUriAndVersioType uriAndVersio = new KoodiUriAndVersioType(); uriAndVersio.setKoodiUri(koulutuskoodi.getKoodiUri()); uriAndVersio.setVersio(koulutuskoodi.getVersio()); List<KoodiType> relatedKoodis = koodiService.listKoodiByRelation(uriAndVersio, false, SuhteenTyyppiType.RINNASTEINEN); KoodiType targetKoodi = null; for (KoodiType curKoodi : relatedKoodis) { if (curKoodi.getKoodisto().getKoodistoUri().equals(targetKoodisto)) { targetKoodi = curKoodi; } } if (targetKoodi == null) { relatedKoodis = koodiService.listKoodiByRelation(uriAndVersio, true, SuhteenTyyppiType.RINNASTEINEN); for (KoodiType curKoodi : relatedKoodis) { if (curKoodi.getKoodisto().getKoodistoUri().equals(targetKoodisto)) { targetKoodi = curKoodi; } } } return targetKoodi; }
public static void addKoodiLyhytnimiTiedot(SolrInputDocument doc, String koodiUri, TarjontaKoodistoHelper koodistoHelper, String uriField, String fiField, String svField, String enField) { if (koodiUri == null) { return; } final KoodiType koodi = koodistoHelper.getKoodiByUri(koodiUri); if (koodi != null) { KoodiMetadataType metadata = IndexDataUtils.getKoodiMetadataForLanguage(koodi, new Locale("fi")); add(doc, fiField, metadata.getLyhytNimi()); metadata = IndexDataUtils.getKoodiMetadataForLanguage(koodi, new Locale("sv")); add(doc, svField, metadata.getLyhytNimi()); metadata = IndexDataUtils.getKoodiMetadataForLanguage(koodi, new Locale("en")); add(doc, enField, metadata.getLyhytNimi()); add(doc, uriField, koodi.getKoodiUri() + IndexDataUtils.KOODI_URI_AND_VERSION_SEPARATOR + koodi.getVersio()); } }
@Override public SubjectRow apply(final KoodiType koodiType) { Map<String, String> translationsMap = TranslationsUtil.createTranslationsMap(koodiType); String koodiArvo = koodiType.getKoodiArvo(); boolean optional = false; boolean highSchool = false; boolean comprehensiveSchool = false; boolean language = false; KoodiUriAndVersioType koodi = new KoodiUriAndVersioType(); koodi.setKoodiUri(koodiType.getKoodiUri()); koodi.setVersio(koodiType.getVersio()); if (koodiService != null) { List<KoodiType> koodiTypes = koodiService.getAlakoodis(koodi.getKoodiUri()); for (KoodiType type : koodiTypes) { String koodistoUri = type.getKoodisto().getKoodistoUri(); if (CODE_OPPIAINEENVALINNAISUUS.equals(koodistoUri)) { optional = isTrue(type); } else if (CODE_ONLUKIONOPPIAINE.equals(koodistoUri)) { highSchool = isTrue(type); } else if (CODE_ONPERUSASTEENOPPIAINE.equals(koodistoUri)) { comprehensiveSchool = isTrue(type); } else if (CODE_OPPIAINEENKIELISYYS.equals(koodistoUri)) { language = isTrue(type); } } } SubjectRow subjectRow = new SubjectRow(koodiArvo, new I18nText(translationsMap), optional, highSchool, comprehensiveSchool, language); subjectRow.toString(); return subjectRow; }