public String getNimiByKoodi(final KoodiType koodi, final Locale locale) { if (koodi != null) { // Get metadata KoodiMetadataType kmdt = getKoodiMetadataForLanguage(koodi, locale); if (kmdt != null) { return kmdt.getNimi(); } } return null; }
/** * Get multilanguage text from koodis metadata "kuvaus" (description) field. * * @param targetKoodiUri * @return */ public Map<String, String> getKoodiMetadataKuvaus(String targetKoodiUri) { Map<String, String> result = new HashMap<String, String>(); if (targetKoodiUri != null) { KoodiType targetKoodiType = getKoodiByUri(targetKoodiUri); if (targetKoodiType != null) { for (KoodiMetadataType koodiMetadataType : targetKoodiType.getMetadata()) { String kuvaus = koodiMetadataType.getKuvaus(); String kieli = koodiMetadataType.getKieli().name(); result.put(convertKielikoodiToKieliUri(kieli), kuvaus); } } } return result; }
private String getLyhytNimiFromKoodi(KoodiType koodi, List<String> kielet) { KoodiMetadataType kmdt = null; String nimi = ""; if (kielet.contains(kieliFi)) { kmdt = getKoodiMetadataForLanguage(koodi, KieliType.FI); } else if (kielet.contains(kieliSv)) { kmdt = getKoodiMetadataForLanguage(koodi, KieliType.SV); } else if (kielet.contains(kieliEn)) { kmdt = getKoodiMetadataForLanguage(koodi, KieliType.EN); } if (kmdt == null) { kmdt = getAvailableKoodiMetadata(koodi); } if (kmdt != null) { nimi = kmdt.getLyhytNimi(); } return nimi; }
/** * Get koodi metadata by locale with language fallback to FI * * @param koodiType * @param locale * @return */ public static KoodiMetadataType getKoodiMetadataForLanguage(KoodiType koodiType, Locale locale) { KoodiMetadataType kmdt = KoodistoHelper.getKoodiMetadataForLanguage(koodiType, KoodistoHelper.getKieliForLocale(locale)); if (kmdt == null || (kmdt.getNimi() == null || kmdt.getNimi().length() == 0)) { // Try finnish if current locale is not found kmdt = KoodistoHelper.getKoodiMetadataForLanguage(koodiType, KieliType.FI); } return kmdt; }
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()); } }
public static Map<String, String> createTranslationsMap(final KoodiType koodiType) { List<KoodiMetadataType> metadata = koodiType.getMetadata(); Map<String, String> translations = new HashMap<String, String>(); for (KoodiMetadataType koodiMetadataType : metadata) { translations.put(koodiMetadataType.getKieli().value().toLowerCase(), koodiMetadataType.getNimi()); } return createTranslationsMap(translations); }
/** * Get koodi metadata by locale with language fallback to FI * * @param koodiType * @param locale * @return */ public KoodiMetadataType getKoodiMetadataForLanguage(KoodiType koodiType, Locale locale) { KoodiMetadataType kmdt = KoodistoHelper.getKoodiMetadataForLanguage(koodiType, KoodistoHelper.getKieliForLocale(locale)); if (kmdt == null || (kmdt.getNimi() == null || kmdt.getNimi().length() == 0)) { // Try finnish if current locale is not found kmdt = KoodistoHelper.getKoodiMetadataForLanguage(koodiType, KieliType.FI); } return kmdt; }
/** * Get multilanguage text from koodis metadata "nimi" (name) field. * * @param targetKoodiUri * @return */ public Map<String, String> getKoodiMetadataNimi(String targetKoodiUri) { Map<String, String> result = new HashMap<String, String>(); if (targetKoodiUri != null) { KoodiType targetKoodiType = getKoodiByUri(targetKoodiUri); if (targetKoodiType != null) { for (KoodiMetadataType koodiMetadataType : targetKoodiType.getMetadata()) { String nimi = koodiMetadataType.getNimi(); String kieli = koodiMetadataType.getKieli().name(); result.put(convertKielikoodiToKieliUri(kieli), nimi); } } } return result; } }
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()); } }