|
From: <ro...@us...> - 2009-04-23 14:49:51
|
Revision: 167
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=167&view=rev
Author: roekens
Date: 2009-04-23 14:49:13 +0000 (Thu, 23 Apr 2009)
Log Message:
-----------
- reimplementation of createOrUpdate methods
- testing
- bugfixes
Modified Paths:
--------------
trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java
trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/DAOJPA.java
trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DataModelManagerBeanTest.java
Modified: trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java
===================================================================
--- trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java 2009-04-23 13:28:38 UTC (rev 166)
+++ trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java 2009-04-23 14:49:13 UTC (rev 167)
@@ -53,132 +53,143 @@
.getLogger(DataModelManagerBean.class);
@Override
- @WebMethod(action = "createOrUpdateCategory")
- @WebResult(name = "EventMessages")
- public List<EventMessage> createOrUpdateCategory(
- @WebParam(name = "CategoryMessage") CategoryMessage categoryMessage) {
-
- // init eventMessageList
- List<EventMessage> events = new ArrayList<EventMessage>();
- // get state of given object in persistence
- State state = null;
- Category loadedCategory = null;
- try {
- loadedCategory = categoryDao.find(categoryMessage.getCategory()
- .getId());
- state = loadedCategory.getState();
- } catch (ServiceComponentException e1) {
- logger.debug(e1);
- logger.debug(e1.getMessage());
- logger.debug(e1);
- logger.debug(e1.getMessage()); // do nothing
- }
- // check if event time is before entity state time
- if (loadedCategory == null
- || loadedCategory.getDate().after(
- categoryMessage.getEventTime())) {
- return events;
- }
-
- // handle different inputEvents
- if (categoryMessage.getInputEvent() == InputEventType.CREATE_UPDATE) {
- // handle different states of entity
- EventMessage eventMessage = new EventMessage();
- Category category = categoryMessage.getCategory();
- category.setState(State.EXISTS);
- category.setDate(categoryMessage.getEventTime());
- eventMessage.setEntity(category);
- try {
- categoryDao.persist(category);
- } catch (ServiceComponentException e) {
- // TODO handle me
- }
- if (state == State.EXISTS) {
- eventMessage.setOutputEvent(OutputEventType.UPDATE);
- } else {
- eventMessage.setOutputEvent(OutputEventType.CREATE);
- }
- eventMessage.setEventTime(new Date());
- events.add(eventMessage);
-
- createReferences(category);
-
- } else if (categoryMessage.getInputEvent() == InputEventType.DELETE) {
- return deleteCategory(categoryMessage);
- } else if (categoryMessage.getInputEvent() == InputEventType.CREATE_BY_REFERENCE) {
- Category knownCategory = categoryMessage.getCategory();
- knownCategory.setState(State.KNOWN);
- try {
- categoryDao.persist(knownCategory);
- } catch (ServiceComponentException e) {
- // TODO handle me
- }
- }
- return events;
- }
-
- @Override
@WebMethod(action = "createOrUpdateCourse")
@WebResult(name = "EventMessages")
public List<EventMessage> createOrUpdateCourse(
@WebParam(name = "CourseMessage") CourseMessage courseMessage) {
// init eventMessageList
List<EventMessage> events = new ArrayList<EventMessage>();
- // get state of given object in persistence
- State state = null;
+
Course loadedCourse = null;
+ Course newCourse = courseMessage.getCourse();
+ newCourse.setDate(courseMessage.getEventTime());
+ newCourse.setState(State.EXISTS);
try {
loadedCourse = courseDao.find(courseMessage.getCourse().getId());
- state = loadedCourse.getState();
} catch (ServiceComponentException e1) {
logger.debug(e1);
logger.debug(e1.getMessage()); // do nothing
}
- // check if event time is before entity state time
- if (loadedCourse == null
- || loadedCourse.getDate().after(courseMessage.getEventTime())) {
- return events;
- }
-
- // handle different inputEvents
- if (courseMessage.getInputEvent() == InputEventType.CREATE_UPDATE) {
- // handle different states of entity
- EventMessage eventMessage = new EventMessage();
- Course course = courseMessage.getCourse();
- course.setState(State.EXISTS);
- course.setDate(courseMessage.getEventTime());
- eventMessage.setEntity(course);
- try {
- courseDao.persist(course);
+
+ //state = NOTEXISTS
+ if (loadedCourse==null){
+ try {
+ events.add(persistCourse(newCourse, OutputEventType.CREATE));
+ return events;
} catch (ServiceComponentException e) {
- // TODO handle me
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
}
- if (state == State.EXISTS) {
- eventMessage.setOutputEvent(OutputEventType.UPDATE);
- } else {
- eventMessage.setOutputEvent(OutputEventType.CREATE);
+ } //state = KNOWN / EXISTS or DELETED
+ else {
+ // state==KNOWN
+ if (loadedCourse.getState()==State.KNOWN){
+ try {
+ events.add(persistCourse(newCourse, OutputEventType.CREATE));
+ //FIXME add events for associated objects
+ return events;
+ } catch (ServiceComponentException e) {
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
+ }
+ } //state = EXISTS or DELETED
+ else {
+ //check if inputEvent has to be handled
+ if (!courseMessage.getEventTime().after(loadedCourse.getDate())) {
+ return events;
+ }
+ if (loadedCourse.getState()==State.DELETED){
+ try {
+ events.add(persistCourse(newCourse, OutputEventType.CREATE));
+ } catch (ServiceComponentException e) {
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
+ }
+ return events;
+ } else if (loadedCourse.getState()==State.EXISTS){
+ try {
+ events.add(persistCourse(newCourse, OutputEventType.UPDATE));
+ } catch (ServiceComponentException e) {
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
+ }
+ return events;
+ }
}
- eventMessage.setEventTime(new Date());
- events.add(eventMessage);
-
- createReferences(course);
-
- } else if (courseMessage.getInputEvent() == InputEventType.DELETE) {
- return deleteCourse(courseMessage);
- } else if (courseMessage.getInputEvent() == InputEventType.CREATE_BY_REFERENCE) {
- Course knownCourse = courseMessage.getCourse();
- knownCourse.setState(State.KNOWN);
- try {
- courseDao.persist(knownCourse);
- } catch (ServiceComponentException e) {
- logger.debug(e);
- logger.debug(e.getMessage());
- // TODO handle me
- }
}
+
return events;
}
+ private EventMessage persistCourse(Course newCourse, OutputEventType outputEvent)
+ throws ServiceComponentException {
+ courseDao.persist(newCourse);
+
+ createReferences(newCourse);
+
+ EventMessage event = new EventMessage();
+ event.setEntity(newCourse);
+ event.setEventTime(new Date());
+ event.setOutputEvent(outputEvent);
+ return event;
+ }
+
+ private EventMessage persistAccount(Account newAccount, OutputEventType outputEvent)
+ throws ServiceComponentException {
+ accountDao.persist(newAccount);
+
+ createReferences(newAccount);
+
+ EventMessage event = new EventMessage();
+ event.setEntity(newAccount);
+ event.setEventTime(new Date());
+ event.setOutputEvent(outputEvent);
+ return event;
+ }
+
+ private EventMessage persistGroup(Group newGroup, OutputEventType outputEvent)
+ throws ServiceComponentException {
+ groupDao.persist(newGroup);
+
+ createReferences(newGroup);
+
+ EventMessage event = new EventMessage();
+ event.setEntity(newGroup);
+ event.setEventTime(new Date());
+ event.setOutputEvent(outputEvent);
+ return event;
+ }
+
+ private EventMessage persistRole(Role newRole, OutputEventType outputEvent)
+ throws ServiceComponentException {
+ roleDao.persist(newRole);
+
+ createReferences(newRole);
+
+ EventMessage event = new EventMessage();
+ event.setEntity(newRole);
+ event.setEventTime(new Date());
+ event.setOutputEvent(outputEvent);
+ return event;
+ }
+
+ private EventMessage persistCategory(Category newCategory, OutputEventType outputEvent)
+ throws ServiceComponentException {
+ categoryDao.persist(newCategory);
+
+ createReferences(newCategory);
+
+ EventMessage event = new EventMessage();
+ event.setEntity(newCategory);
+ event.setEventTime(new Date());
+ event.setOutputEvent(outputEvent);
+ return event;
+ }
+
private void createReferences(Course course) {
// traverse associated objects and create them
// categories
@@ -244,6 +255,9 @@
}
private void createByReference(Category category) {
+ if (category == null){
+ return;
+ }
try {
@SuppressWarnings("unused")
Category loadedCategory = categoryDao.find(category.getId());
@@ -257,6 +271,9 @@
}
private void createByReference(Course course) {
+ if (course == null){
+ return;
+ }
try {
@SuppressWarnings("unused")
Course loadedCourse = courseDao.find(course.getId());
@@ -270,6 +287,9 @@
}
private void createByReference(Group group) {
+ if (group == null){
+ return;
+ }
try {
@SuppressWarnings("unused")
Group loadedGroup = groupDao.find(group.getId());
@@ -283,6 +303,9 @@
}
private void createByReference(Account account) {
+ if (account == null){
+ return;
+ }
try {
@SuppressWarnings("unused")
Account loadedAccount = accountDao.find(account.getId());
@@ -296,6 +319,9 @@
}
private void createByReference(Role role) {
+ if (role == null){
+ return;
+ }
try {
@SuppressWarnings("unused")
Role loadedRole = roleDao.find(role.getId());
@@ -309,36 +335,6 @@
}
@Override
- public List<EventMessage> deleteCategory(CategoryMessage categoryMessage) {
- // init eventMessageList
- List<EventMessage> events = new ArrayList<EventMessage>();
- // get state of given object in persistence
- Category loadedCategory = null;
- try {
- loadedCategory = categoryDao.find(categoryMessage.getCategory()
- .getId());
- } catch (ServiceComponentException e1) {
- logger.debug(e1);
- logger.debug(e1.getMessage()); // do nothing
- }
- loadedCategory.setState(State.DELETED);
- try {
- categoryDao.persist(loadedCategory);
- } catch (ServiceComponentException e) {
- logger.debug(e);
- logger.debug(e.getMessage());
- // TODO handle me
- }
-
- EventMessage em = new EventMessage();
- em.setEntity(loadedCategory);
- em.setEventTime(new Date());
- em.setOutputEvent(OutputEventType.DELETE);
- events.add(em);
- return events;
- }
-
- @Override
public List<EventMessage> deleteCourse(CourseMessage courseMessage) {
// init eventMessageList
List<EventMessage> events = new ArrayList<EventMessage>();
@@ -370,63 +366,142 @@
@Override
public List<EventMessage> createOrUpdateAccount(
AccountMessage accountMessage) {
-
// init eventMessageList
List<EventMessage> events = new ArrayList<EventMessage>();
- // get state of given object in persistence
- State state = null;
+
Account loadedAccount = null;
+ Account newAccount = accountMessage.getAccount();
+ newAccount.setDate(accountMessage.getEventTime());
+ newAccount.setState(State.EXISTS);
try {
- loadedAccount = accountDao
- .find(accountMessage.getAccount().getId());
- state = loadedAccount.getState();
+ loadedAccount = accountDao.find(accountMessage.getAccount().getId());
} catch (ServiceComponentException e1) {
logger.debug(e1);
logger.debug(e1.getMessage()); // do nothing
}
- // check if event time is before entity state time
- if (loadedAccount == null
- || loadedAccount.getDate().after(accountMessage.getEventTime())) {
- return events;
- }
-
- // handle different inputEvents
- if (accountMessage.getInputEvent() == InputEventType.CREATE_UPDATE) {
- // handle different states of entity
- EventMessage eventMessage = new EventMessage();
- Account account = accountMessage.getAccount();
- account.setState(State.EXISTS);
- account.setDate(accountMessage.getEventTime());
- eventMessage.setEntity(account);
- try {
- accountDao.persist(account);
+
+ //state = NOTEXISTS
+ if (loadedAccount==null){
+ try {
+ events.add(persistAccount(newAccount, OutputEventType.CREATE));
+ return events;
} catch (ServiceComponentException e) {
- logger.debug(e);
- logger.debug(e.getMessage());
- // TODO handle me
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
}
- if (state == State.EXISTS) {
- eventMessage.setOutputEvent(OutputEventType.UPDATE);
- } else {
- eventMessage.setOutputEvent(OutputEventType.CREATE);
+ } //state = KNOWN / EXISTS or DELETED
+ else {
+ // state==KNOWN
+ if (loadedAccount.getState()==State.KNOWN){
+ try {
+ events.add(persistAccount(newAccount, OutputEventType.CREATE));
+ //FIXME add events for associated objects
+ return events;
+ } catch (ServiceComponentException e) {
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
+ }
+ } //state = EXISTS or DELETED
+ else {
+ //check if inputEvent has to be handled
+ if (!accountMessage.getEventTime().after(loadedAccount.getDate())) {
+ return events;
+ }
+ if (loadedAccount.getState()==State.DELETED){
+ try {
+ events.add(persistAccount(newAccount, OutputEventType.CREATE));
+ } catch (ServiceComponentException e) {
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
+ }
+ return events;
+ } else if (loadedAccount.getState()==State.EXISTS){
+ try {
+ events.add(persistAccount(newAccount, OutputEventType.UPDATE));
+ } catch (ServiceComponentException e) {
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
+ }
+ return events;
+ }
}
- eventMessage.setEventTime(new Date());
- events.add(eventMessage);
+ }
+ return events;
+ }
- createReferences(account);
- } else if (accountMessage.getInputEvent() == InputEventType.DELETE) {
- return deleteAccount(accountMessage);
- } else if (accountMessage.getInputEvent() == InputEventType.CREATE_BY_REFERENCE) {
- Account knownAccount = accountMessage.getAccount();
- knownAccount.setState(State.KNOWN);
- try {
- accountDao.persist(knownAccount);
+ @Override
+ public List<EventMessage> createOrUpdateCategory(
+ CategoryMessage categoryMessage) {
+ // init eventMessageList
+ List<EventMessage> events = new ArrayList<EventMessage>();
+
+ Category loadedCategory = null;
+ Category newCategory = categoryMessage.getCategory();
+ newCategory.setDate(categoryMessage.getEventTime());
+ newCategory.setState(State.EXISTS);
+ try {
+ loadedCategory = categoryDao.find(categoryMessage.getCategory().getId());
+ } catch (ServiceComponentException e1) {
+ logger.debug(e1);
+ logger.debug(e1.getMessage()); // do nothing
+ }
+
+ //state = NOTEXISTS
+ if (loadedCategory==null){
+ try {
+ events.add(persistCategory(newCategory, OutputEventType.CREATE));
+ return events;
} catch (ServiceComponentException e) {
- logger.debug(e); logger.debug(e.getMessage());
- // TODO handle me
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
}
+ } //state = KNOWN / EXISTS or DELETED
+ else {
+ // state==KNOWN
+ if (loadedCategory.getState()==State.KNOWN){
+ try {
+ events.add(persistCategory(newCategory, OutputEventType.CREATE));
+ //FIXME add events for associated objects
+ return events;
+ } catch (ServiceComponentException e) {
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
+ }
+ } //state = EXISTS or DELETED
+ else {
+ //check if inputEvent has to be handled
+ if (!categoryMessage.getEventTime().after(loadedCategory.getDate())) {
+ return events;
+ }
+ if (loadedCategory.getState()==State.DELETED){
+ try {
+ events.add(persistCategory(newCategory, OutputEventType.CREATE));
+ } catch (ServiceComponentException e) {
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
+ }
+ return events;
+ } else if (loadedCategory.getState()==State.EXISTS){
+ try {
+ events.add(persistCategory(newCategory, OutputEventType.UPDATE));
+ } catch (ServiceComponentException e) {
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
+ }
+ return events;
+ }
+ }
}
+
return events;
}
@@ -434,61 +509,69 @@
public List<EventMessage> createOrUpdateGroup(GroupMessage groupMessage) {
// init eventMessageList
List<EventMessage> events = new ArrayList<EventMessage>();
- // get state of given object in persistence
- State state = null;
+
Group loadedGroup = null;
+ Group newGroup = groupMessage.getGroup();
+ newGroup.setDate(groupMessage.getEventTime());
+ newGroup.setState(State.EXISTS);
try {
loadedGroup = groupDao.find(groupMessage.getGroup().getId());
- state = loadedGroup.getState();
} catch (ServiceComponentException e1) {
logger.debug(e1);
- logger.debug(e1.getMessage());
- // do nothing
+ logger.debug(e1.getMessage()); // do nothing
}
- // check if event time is before entity state time
- if (loadedGroup == null
- || loadedGroup.getDate().after(groupMessage.getEventTime())) {
- return events;
- }
-
- // handle different inputEvents
- if (groupMessage.getInputEvent() == InputEventType.CREATE_UPDATE) {
- // handle different states of entity
- EventMessage eventMessage = new EventMessage();
- Group group = groupMessage.getGroup();
- group.setState(State.EXISTS);
- group.setDate(groupMessage.getEventTime());
- eventMessage.setEntity(group);
- try {
- groupDao.persist(group);
+
+ //state = NOTEXISTS
+ if (loadedGroup==null){
+ try {
+ events.add(persistGroup(newGroup, OutputEventType.CREATE));
+ return events;
} catch (ServiceComponentException e) {
- logger.debug(e);
- logger.debug(e.getMessage());
- // TODO handle me
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
}
- if (state == State.EXISTS) {
- eventMessage.setOutputEvent(OutputEventType.UPDATE);
- } else {
- eventMessage.setOutputEvent(OutputEventType.CREATE);
+ } //state = KNOWN / EXISTS or DELETED
+ else {
+ // state==KNOWN
+ if (loadedGroup.getState()==State.KNOWN){
+ try {
+ events.add(persistGroup(newGroup, OutputEventType.CREATE));
+ //FIXME add events for associated objects
+ return events;
+ } catch (ServiceComponentException e) {
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
+ }
+ } //state = EXISTS or DELETED
+ else {
+ //check if inputEvent has to be handled
+ if (!groupMessage.getEventTime().after(loadedGroup.getDate())) {
+ return events;
+ }
+ if (loadedGroup.getState()==State.DELETED){
+ try {
+ events.add(persistGroup(newGroup, OutputEventType.CREATE));
+ } catch (ServiceComponentException e) {
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
+ }
+ return events;
+ } else if (loadedGroup.getState()==State.EXISTS){
+ try {
+ events.add(persistGroup(newGroup, OutputEventType.UPDATE));
+ } catch (ServiceComponentException e) {
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
+ }
+ return events;
+ }
}
- eventMessage.setEventTime(new Date());
- events.add(eventMessage);
-
- createReferences(group);
-
- } else if (groupMessage.getInputEvent() == InputEventType.DELETE) {
- return deleteGroup(groupMessage);
- } else if (groupMessage.getInputEvent() == InputEventType.CREATE_BY_REFERENCE) {
- Group knownGroup = groupMessage.getGroup();
- knownGroup.setState(State.KNOWN);
- try {
- groupDao.persist(knownGroup);
- } catch (ServiceComponentException e) {
- logger.debug(e);
- logger.debug(e.getMessage());
- // TODO handle me
- }
}
+
return events;
}
@@ -496,152 +579,94 @@
public List<EventMessage> createOrUpdateRole(RoleMessage roleMessage) {
// init eventMessageList
List<EventMessage> events = new ArrayList<EventMessage>();
- // get state of given object in persistence
- State state = null;
+
Role loadedRole = null;
+ Role newRole = roleMessage.getRole();
+ newRole.setDate(roleMessage.getEventTime());
+ newRole.setState(State.EXISTS);
try {
loadedRole = roleDao.find(roleMessage.getRole().getId());
- state = loadedRole.getState();
} catch (ServiceComponentException e1) {
logger.debug(e1);
- logger.debug(e1.getMessage());
- // do nothing
+ logger.debug(e1.getMessage()); // do nothing
}
- // check if event time is before entity state time
- if (loadedRole == null
- || loadedRole.getDate().after(roleMessage.getEventTime())) {
- return events;
- }
-
- // handle different inputEvents
- if (roleMessage.getInputEvent() == InputEventType.CREATE_UPDATE) {
- // handle different states of entity
- EventMessage eventMessage = new EventMessage();
- Role role = roleMessage.getRole();
- role.setState(State.EXISTS);
- role.setDate(roleMessage.getEventTime());
- eventMessage.setEntity(role);
- try {
- roleDao.persist(role);
+
+ //state = NOTEXISTS
+ if (loadedRole==null){
+ try {
+ events.add(persistRole(newRole, OutputEventType.CREATE));
+ return events;
} catch (ServiceComponentException e) {
- logger.debug(e);
- logger.debug(e.getMessage());
- // TODO handle me
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
}
- if (state == State.EXISTS) {
- eventMessage.setOutputEvent(OutputEventType.UPDATE);
- } else {
- eventMessage.setOutputEvent(OutputEventType.CREATE);
+ } //state = KNOWN / EXISTS or DELETED
+ else {
+ // state==KNOWN
+ if (loadedRole.getState()==State.KNOWN){
+ try {
+ events.add(persistRole(newRole, OutputEventType.CREATE));
+ //FIXME add events for associated objects
+ return events;
+ } catch (ServiceComponentException e) {
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
+ }
+ } //state = EXISTS or DELETED
+ else {
+ //check if inputEvent has to be handled
+ if (!roleMessage.getEventTime().after(loadedRole.getDate())) {
+ return events;
+ }
+ if (loadedRole.getState()==State.DELETED){
+ try {
+ events.add(persistRole(newRole, OutputEventType.CREATE));
+ } catch (ServiceComponentException e) {
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
+ }
+ return events;
+ } else if (loadedRole.getState()==State.EXISTS){
+ try {
+ events.add(persistRole(newRole, OutputEventType.UPDATE));
+ } catch (ServiceComponentException e) {
+ //TODO handle me
+ logger.debug(e.getStackTrace());
+ return null;
+ }
+ return events;
+ }
}
- eventMessage.setEventTime(new Date());
- events.add(eventMessage);
-
- createReferences(role);
-
- } else if (roleMessage.getInputEvent() == InputEventType.DELETE) {
- return deleteRole(roleMessage);
- } else if (roleMessage.getInputEvent() == InputEventType.CREATE_BY_REFERENCE) {
- Role knownRole = roleMessage.getRole();
- knownRole.setState(State.KNOWN);
- try {
- roleDao.persist(knownRole);
- } catch (ServiceComponentException e) {
- logger.debug(e);
- logger.debug(e.getMessage());
- // TODO handle me
- }
}
+
return events;
}
@Override
public List<EventMessage> deleteAccount(AccountMessage accountMessage) {
- // init eventMessageList
- List<EventMessage> events = new ArrayList<EventMessage>();
- // get state of given object in persistence
- Account loadedAccount = null;
- try {
- loadedAccount = accountDao
- .find(accountMessage.getAccount().getId());
- } catch (ServiceComponentException e1) {
- logger.debug(e1);
- logger.debug(e1.getMessage());
- // do nothing
- }
- loadedAccount.setState(State.DELETED);
- try {
- accountDao.persist(loadedAccount);
- } catch (ServiceComponentException e) {
- logger.debug(e);
- logger.debug(e.getMessage());
- // TODO handle me
- }
+ // TODO Auto-generated method stub
+ return null;
+ }
- EventMessage em = new EventMessage();
- em.setEntity(loadedAccount);
- em.setEventTime(new Date());
- em.setOutputEvent(OutputEventType.DELETE);
- events.add(em);
- return events;
+ @Override
+ public List<EventMessage> deleteCategory(CategoryMessage categoryMessage) {
+ // TODO Auto-generated method stub
+ return null;
}
@Override
public List<EventMessage> deleteGroup(GroupMessage groupMessage) {
- // init eventMessageList
- List<EventMessage> events = new ArrayList<EventMessage>();
- // get state of given object in persistence
- Group loadedGroup = null;
- try {
- loadedGroup = groupDao.find(groupMessage.getGroup().getId());
- } catch (ServiceComponentException e1) {
- logger.debug(e1);
- logger.debug(e1.getMessage());
- // do nothing
- }
- loadedGroup.setState(State.DELETED);
- try {
- groupDao.persist(loadedGroup);
- } catch (ServiceComponentException e) {
- logger.debug(e); logger.debug(e.getMessage());
- // TODO handle me
- }
-
- EventMessage em = new EventMessage();
- em.setEntity(loadedGroup);
- em.setEventTime(new Date());
- em.setOutputEvent(OutputEventType.DELETE);
- events.add(em);
- return events;
+ // TODO Auto-generated method stub
+ return null;
}
@Override
public List<EventMessage> deleteRole(RoleMessage roleMessage) {
- // init eventMessageList
- List<EventMessage> events = new ArrayList<EventMessage>();
- // get state of given object in persistence
- Role loadedRole = null;
- try {
- loadedRole = roleDao.find(roleMessage.getRole().getId());
- } catch (ServiceComponentException e1) {
- logger.debug(e1);
- logger.debug(e1.getMessage());
- // do nothing
- }
- loadedRole.setState(State.DELETED);
- try {
- roleDao.persist(loadedRole);
- } catch (ServiceComponentException e) {
- logger.debug(e);
- logger.debug(e.getMessage());
- // TODO handle me
- }
-
- EventMessage em = new EventMessage();
- em.setEntity(loadedRole);
- em.setEventTime(new Date());
- em.setOutputEvent(OutputEventType.DELETE);
- events.add(em);
- return events;
+ // TODO Auto-generated method stub
+ return null;
}
}
Modified: trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/DAOJPA.java
===================================================================
--- trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/DAOJPA.java 2009-04-23 13:28:38 UTC (rev 166)
+++ trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/DAOJPA.java 2009-04-23 14:49:13 UTC (rev 167)
@@ -34,6 +34,9 @@
@Override
@TransactionAttribute(TransactionAttributeType.SUPPORTS)
public E find(Serializable id) throws ServiceComponentException{
+ if (id==null){
+ return null;
+ }
E result = entityManager.find(persistentClass, id);
if (result == null){
throw new IdNotFoundException("Id: "+ id + "could not be found.");
Modified: trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DataModelManagerBeanTest.java
===================================================================
--- trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DataModelManagerBeanTest.java 2009-04-23 13:28:38 UTC (rev 166)
+++ trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DataModelManagerBeanTest.java 2009-04-23 14:49:13 UTC (rev 167)
@@ -3,9 +3,14 @@
+import java.util.Date;
+import java.util.List;
+
import org.junit.Before;
import org.junit.Test;
+import static org.junit.Assert.*;
+import de.campussource.cse.cdmm.domain.Course;
import de.campussource.cse.common.test.AbstractPersistentUnitTest;
public class DataModelManagerBeanTest extends AbstractPersistentUnitTest {
@@ -25,4 +30,23 @@
Constants constants = new Constants();
}
+ @Test
+ public void testCourseOperations(){
+ CourseMessage courseMessage = new CourseMessage();
+ courseMessage.setCourse(new Course());
+ courseMessage.setEventTime(new Date());
+ courseMessage.setInputEvent(InputEventType.CREATE_UPDATE);
+
+ List<EventMessage> events = dmm.createOrUpdateCourse(courseMessage);
+
+ assertEquals(1, events.size());
+ assertEquals(OutputEventType.CREATE, events.get(0).getOutputEvent());
+ assertNotNull(events.get(0).getEntity().getId());
+
+ courseMessage.getCourse().setId(events.get(0).getEntity().getId());
+
+ events = dmm.createOrUpdateCourse(courseMessage);
+ assertEquals(0, events.size());
+ }
+
}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|