package at.gv.egovernment.moa.id.commons.db; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.persistence.EntityManager; import at.gv.egovernment.moa.id.commons.db.dao.config.MOAIDConfiguration; import at.gv.egovernment.moa.id.commons.db.dao.config.OnlineApplication; import at.gv.egovernment.moa.id.commons.db.dao.config.UserDatabase; import at.gv.egovernment.moa.logging.Logger; import at.gv.egovernment.moa.util.MiscUtil; public class ConfigurationDBRead { private static Map QUERIES = new HashMap(); static { QUERIES.put("getActiveOnlineApplicationWithID", "select onlineapplication from OnlineApplication onlineapplication where onlineapplication.publicURLPrefix like SUBSTRING(:id, 1, LENGTH(onlineapplication.publicURLPrefix)) and onlineapplication.isActive = '1'"); QUERIES.put("getOnlineApplicationWithID", "select onlineapplication from OnlineApplication onlineapplication where onlineapplication.publicURLPrefix like SUBSTRING(:id, 1, LENGTH(onlineapplication.publicURLPrefix))"); QUERIES.put("getOnlineApplicationWithDBID", "select onlineapplication from OnlineApplication onlineapplication where onlineapplication.hjid = :id"); QUERIES.put("getAllOnlineApplications", "select onlineapplication from OnlineApplication onlineapplication"); QUERIES.put("getMOAIDConfiguration", "select moaidconfiguration from MOAIDConfiguration moaidconfiguration"); QUERIES.put("getUserWithUserID", "select userdatabase from UserDatabase userdatabase where userdatabase.hjid = :id"); QUERIES.put("searchOnlineApplicationsWithID", "select onlineapplication from OnlineApplication onlineapplication where onlineapplication.friendlyName like :id"); } @SuppressWarnings("rawtypes") public static OnlineApplication getActiveOnlineApplication(String id) { MiscUtil.assertNotNull(id, "OnlineApplictionID"); Logger.trace("Getting OnlineApplication with ID " + id + " from database."); List result; EntityManager session = ConfigurationDBUtils.getCurrentSession(); javax.persistence.Query query = session.createQuery(QUERIES.get("getActiveOnlineApplicationWithID")); //query.setParameter("id", id+"%"); query.setParameter("id", id); result = query.getResultList(); Logger.trace("Found entries: " + result.size()); if (result.size() == 0) { Logger.trace("No entries found."); return null; } return (OnlineApplication) result.get(0); } @SuppressWarnings("rawtypes") public static OnlineApplication getOnlineApplication(String id) { MiscUtil.assertNotNull(id, "OnlineApplictionID"); Logger.trace("Getting OnlineApplication with ID " + id + " from database."); List result; EntityManager session = ConfigurationDBUtils.getCurrentSession(); javax.persistence.Query query = session.createQuery(QUERIES.get("getOnlineApplicationWithID")); //query.setParameter("id", id+"%"); query.setParameter("id", id); result = query.getResultList(); Logger.trace("Found entries: " + result.size()); if (result.size() == 0) { Logger.trace("No entries found."); return null; } return (OnlineApplication) result.get(0); } @SuppressWarnings("rawtypes") public static OnlineApplication getOnlineApplication(long dbid) { MiscUtil.assertNotNull(dbid, "OnlineApplictionID"); Logger.trace("Getting OnlineApplication with DBID " + dbid + " from database."); List result; EntityManager session = ConfigurationDBUtils.getCurrentSession(); javax.persistence.Query query = session.createQuery(QUERIES.get("getOnlineApplicationWithDBID")); //query.setParameter("id", id+"%"); query.setParameter("id", dbid); result = query.getResultList(); Logger.trace("Found entries: " + result.size()); if (result.size() == 0) { Logger.trace("No entries found."); return null; } return (OnlineApplication) result.get(0); } public static MOAIDConfiguration getMOAIDConfiguration() { Logger.trace("Load MOAID Configuration from database."); List result; EntityManager session = ConfigurationDBUtils.getCurrentSession(); javax.persistence.Query query = session.createQuery(QUERIES.get("getMOAIDConfiguration")); result = query.getResultList(); Logger.trace("Found entries: " + result.size()); if (result.size() == 0) { Logger.trace("No entries found."); return null; } return (MOAIDConfiguration) result.get(0); } public static List getAllOnlineApplications() { Logger.trace("Get All OnlineApplications from database."); List result; EntityManager session = ConfigurationDBUtils.getCurrentSession(); javax.persistence.Query query = session.createQuery(QUERIES.get("getAllOnlineApplications")); result = query.getResultList(); Logger.trace("Found entries: " + result.size()); if (result.size() == 0) { Logger.trace("No entries found."); return null; } return result; } @SuppressWarnings("rawtypes") public static List searchOnlineApplications(String id) { MiscUtil.assertNotNull(id, "OnlineApplictionID"); Logger.trace("Getting OnlineApplication with ID " + id + " from database."); List result; EntityManager session = ConfigurationDBUtils.getCurrentSession(); javax.persistence.Query query = session.createQuery(QUERIES.get("searchOnlineApplicationsWithID")); query.setParameter("id", "%"+id+"%"); result = query.getResultList(); Logger.trace("Found entries: " + result.size()); if (result.size() == 0) { Logger.trace("No entries found."); return null; } return result; } public static UserDatabase getUserWithID(long id) { MiscUtil.assertNotNull(id, "UserID"); Logger.trace("Getting Userinformation with ID " + id + " from database."); List result; EntityManager session = ConfigurationDBUtils.getCurrentSession(); javax.persistence.Query query = session.createQuery(QUERIES.get("getUserWithUserID")); query.setParameter("id", id); result = query.getResultList(); Logger.trace("Found entries: " + result.size()); if (result.size() == 0) { Logger.trace("No entries found."); return null; } return (UserDatabase) result.get(0); } }