# HG changeset patch # User Raimund Renkert # Date 1372075908 -7200 # Node ID 18b234ef3733254210fbb6372929854bee822734 # Parent 1613ab50d6d09b785e67c149e1a01402da5d4edf New interface for data manager and generic implementation of a data manager. diff -r 1613ab50d6d0 -r 18b234ef3733 src/main/java/de/intevation/lada/manage/DataManager.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/intevation/lada/manage/DataManager.java Mon Jun 24 14:11:48 2013 +0200 @@ -0,0 +1,47 @@ +package de.intevation.lada.manage; + +import javax.ejb.EJBTransactionRolledbackException; +import javax.ejb.Stateless; +import javax.ejb.TransactionAttribute; +import javax.ejb.TransactionAttributeType; +import javax.inject.Inject; +import javax.inject.Named; +import javax.persistence.EntityExistsException; +import javax.persistence.EntityManager; +import javax.persistence.TransactionRequiredException; + + +@Stateless +@Named("datamanager") +public class DataManager +implements Manager +{ + @Inject + private EntityManager em; + + @Override + @TransactionAttribute(TransactionAttributeType.REQUIRED) + public void create(Object object) + throws EntityExistsException, + IllegalArgumentException, + EJBTransactionRolledbackException, + TransactionRequiredException { + em.persist(object); + } + + @Override + @TransactionAttribute(TransactionAttributeType.REQUIRED) + public void update(Object object) + throws EntityExistsException, + IllegalArgumentException, + EJBTransactionRolledbackException, + TransactionRequiredException { + em.merge(object); + } + + @Override + @TransactionAttribute(TransactionAttributeType.REQUIRED) + public void delete(String id, Class clazz) throws Exception { + + } +} diff -r 1613ab50d6d0 -r 18b234ef3733 src/main/java/de/intevation/lada/manage/Manager.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/intevation/lada/manage/Manager.java Mon Jun 24 14:11:48 2013 +0200 @@ -0,0 +1,29 @@ +package de.intevation.lada.manage; + +import javax.ejb.EJBTransactionRolledbackException; +import javax.ejb.Stateless; +import javax.ejb.TransactionAttribute; +import javax.ejb.TransactionAttributeType; +import javax.persistence.EntityExistsException; +import javax.persistence.TransactionRequiredException; + +@Stateless +public interface Manager +{ + @TransactionAttribute(TransactionAttributeType.REQUIRED) + public void create(Object object) + throws EntityExistsException, + IllegalArgumentException, + EJBTransactionRolledbackException, + TransactionRequiredException; + + @TransactionAttribute(TransactionAttributeType.REQUIRED) + public void update(Object object) + throws EntityExistsException, + IllegalArgumentException, + EJBTransactionRolledbackException, + TransactionRequiredException; + + @TransactionAttribute(TransactionAttributeType.REQUIRED) + public void delete(String id, Class clazz) throws Exception; +}