- package fi.affecto.osti.fwkint.seam.international.status;
- import java.io.Serializable;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Locale;
- import java.util.Map;
- import java.util.ResourceBundle;
- import javax.inject.Inject;
- import javax.persistence.EntityManager;
- import fi.affecto.osti.fwkint.jsf.el.ELResolvingResourceBundle;
- import fi.affecto.osti.fwkint.seam.exception.ExceptionHandled;
- import fi.affecto.osti.fwkint.seam.international.status.FrameworkMessu.Messutyyppi;
- import fi.affecto.osti.installaatio.Asetukset;
- @ExceptionHandled
- public class DBResourceLoader implements Serializable
- {
- private static final long serialVersionUID = 1L;
- @Inject
- private Asetukset asetukset;
- @Inject
- private EntityManager entityManager;
- public ResourceBundle loadJSFBundleFor(Locale locale)
- {
- return haeJarjestelmamessut(locale, Messutyyppi.JSF);
- }
- public ResourceBundle loadBeanValidationBundleFor(Locale locale)
- {
- return haeJarjestelmamessut(locale, Messutyyppi.BV);
- }
- public ResourceBundle loadMessageBundleFor(Locale locale, String toiminto)
- {
- return haeSovellusmessut(locale, toiminto.toLowerCase());
- }
- private ResourceBundle haeJarjestelmamessut(Locale locale, Messutyyppi tyyppi)
- {
- List<FrameworkMessu> messut = entityManager.createNamedQuery("frameworkmessut", FrameworkMessu.class).setParameter("kieli", locale.getLanguage().toUpperCase()).setParameter("tyyppi", tyyppi)
- .getResultList();
- Map<String, String> messumappaus = new HashMap<String, String>();
- for (FrameworkMessu messu : messut)
- {
- messumappaus.put(messu.getTunnus(), messu.getViesti());
- }
- return new MissingAwareResourceBundle(messumappaus);
- }
- private ResourceBundle haeSovellusmessut(Locale locale, String toiminto)
- {
- List<SovellusMessu> sovellusMessut = entityManager.createNamedQuery("sovellusmessut", SovellusMessu.class).setParameter("installaatio", asetukset.getInstallaatio())
- .setParameter("kieli", locale.getLanguage().toLowerCase()).getResultList();
- Map<String, String> hoputemappaus = new HashMap<String, String>();
- for (SovellusMessu sovellusMessu : sovellusMessut)
- {
- hoputemappaus.put(sovellusMessu.getId().getAvain(), sovellusMessu.getViesti());
- }
- return new ELResolvingResourceBundle(hoputemappaus);
- }
- }