aboutsummaryrefslogtreecommitdiff
path: root/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/ConfigPropertyDaoImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/ConfigPropertyDaoImpl.java')
-rw-r--r--id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/ConfigPropertyDaoImpl.java104
1 files changed, 104 insertions, 0 deletions
diff --git a/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/ConfigPropertyDaoImpl.java b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/ConfigPropertyDaoImpl.java
new file mode 100644
index 000000000..6a76c1d17
--- /dev/null
+++ b/id/server/moa-id-commons/src/main/java/at/gv/egovernment/moa/id/commons/db/dao/config/ConfigPropertyDaoImpl.java
@@ -0,0 +1,104 @@
+package at.gv.egovernment.moa.id.commons.db.dao.config;
+
+import java.util.List;
+import java.util.Set;
+
+import javax.persistence.EntityManager;
+import javax.persistence.NoResultException;
+import javax.persistence.PersistenceContext;
+import javax.persistence.TypedQuery;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * Database backed implementation of the DAO interface
+ *
+ */
+@Transactional("transactionManager")
+public class ConfigPropertyDaoImpl implements ConfigPropertyDao {
+
+ private Logger log = LoggerFactory.getLogger(getClass());
+
+ @PersistenceContext(unitName = "moaidconf")
+ private EntityManager em;
+
+ @Override
+ public List<String> getAllKeys() {
+ if (null == em) {
+ log.error("No EntityManager set!");
+ return null;
+ }
+ TypedQuery<String> query = em.createQuery("select key from ConfigProperty", String.class);
+ List<String> result = query.getResultList();
+ return result;
+ }
+
+ @Override
+ public void saveProperty(ConfigProperty property) {
+ if (null == em) {
+ log.error("No EntityManager set!");
+ return;
+ }
+
+ log.debug("Storing '{}'.", property.toString());
+ em.persist(property);
+ }
+
+ @Override
+ public ConfigProperty getProperty(String key) {
+ log.debug("Looking for configuration property for key '{}'.", key);
+ ConfigProperty result = em.find(ConfigProperty.class, key);
+ if (result != null) {
+ log.debug("Found configuration property {}.", result);
+ } else {
+ log.debug("Unable to find configuration property for key '{}'.", key);
+ }
+ return result;
+ }
+
+ @Override
+ public String getPropertyValue(String key) {
+ ConfigProperty property = getProperty(key);
+ if (property == null) {
+ return null;
+ }
+ return property.getValue();
+ }
+
+ @Override
+ public List<ConfigProperty> getProperties() {
+
+ if (null == em) {
+ log.error("No EntityManager set!");
+ return null;
+ }
+
+ log.debug("Retrieving all properties from database.");
+ TypedQuery<ConfigProperty> query = em.createQuery("select mc from ConfigProperty mc", ConfigProperty.class);
+ try {
+ List<ConfigProperty> propertiesList = query.getResultList();
+ return propertiesList;
+ } catch (NoResultException e) {
+ log.debug("No property found in database.");
+ return null;
+ }
+ }
+
+ @Override
+ public void saveProperties(Set<ConfigProperty> properties) {
+ log.debug("Storing {} properties to database.", properties.size());
+ for (ConfigProperty cp : properties) {
+ saveProperty(cp);
+ }
+ em.flush();
+ }
+
+ @Override
+ public void delete(String key) {
+ log.debug("Deleting entry with key '{}'.", key);
+ em.remove(em.find(ConfigProperty.class, key));
+ }
+
+}