From cf1811ce269e135c8e1a79070b97dc15487d2377 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Tue, 9 Dec 2008 17:13:55 +0000 Subject: [PATCH] Implemented in TestServiceImpl Added a delete() in collections DAO NEW - bug 74: Remove empty collections automatically https://www.argeo.org/bugzilla/show_bug.cgi?id=74 git-svn-id: https://svn.argeo.org/slc/trunk@1979 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../org/argeo/slc/services/test/TestManagerService.java | 4 ++++ .../slc/services/test/impl/TestManagerServiceImpl.java | 7 +++++++ .../test/tree/TreeTestResultCollectionDaoHibernate.java | 5 +++++ .../slc/dao/test/tree/TreeTestResultCollectionDao.java | 2 ++ 4 files changed, 18 insertions(+) diff --git a/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/services/test/TestManagerService.java b/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/services/test/TestManagerService.java index f1fd71a0d..19cde15cf 100644 --- a/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/services/test/TestManagerService.java +++ b/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/services/test/TestManagerService.java @@ -2,11 +2,15 @@ package org.argeo.slc.services.test; import org.argeo.slc.test.TestRunDescriptor; +/** Performs complex business operations. */ public interface TestManagerService { + /** Performs operations related to the addition of a new test run. */ public void registerTestRunDescriptor(TestRunDescriptor testRunDescriptor); + /** Adds a result in a collection based on their ids. */ public void addResultToCollection(String collectionId, String resultUuid); + /** Removes a result from a collection based on their ids. */ public void removeResultFromCollection(String collectionId, String resultUuid); } diff --git a/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/services/test/impl/TestManagerServiceImpl.java b/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/services/test/impl/TestManagerServiceImpl.java index 253f849d0..1cb9112b7 100644 --- a/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/services/test/impl/TestManagerServiceImpl.java +++ b/runtime/org.argeo.slc.server/src/main/java/org/argeo/slc/services/test/impl/TestManagerServiceImpl.java @@ -11,6 +11,7 @@ import org.argeo.slc.process.SlcExecution; import org.argeo.slc.services.test.TestManagerService; import org.argeo.slc.test.TestRunDescriptor; +/** Implementation of complex operations impacting the underlying data. */ public class TestManagerServiceImpl implements TestManagerService { private Log log = LogFactory.getLog(getClass()); @@ -69,6 +70,12 @@ public class TestManagerServiceImpl implements TestManagerService { treeTestResultCollectionDao.removeResultFromCollection(ttrc, resultUuid); } + + // Delete collection if empty + // see https://www.argeo.org/bugzilla/show_bug.cgi?id=74 + if (ttrc.getResults().size() == 0) { + treeTestResultCollectionDao.delete(ttrc); + } } } diff --git a/runtime/org.argeo.slc.support.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java b/runtime/org.argeo.slc.support.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java index 0e44b74d5..c1679b823 100644 --- a/runtime/org.argeo.slc.support.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java +++ b/runtime/org.argeo.slc.support.hibernate/src/main/java/org/argeo/slc/hibernate/test/tree/TreeTestResultCollectionDaoHibernate.java @@ -15,6 +15,7 @@ import org.hibernate.Session; import org.springframework.orm.hibernate3.HibernateCallback; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; +/** Hibernate implementation of collections DAO. */ public class TreeTestResultCollectionDaoHibernate extends HibernateDaoSupport implements TreeTestResultCollectionDao { @@ -31,6 +32,10 @@ public class TreeTestResultCollectionDaoHibernate extends HibernateDaoSupport getHibernateTemplate().update(ttrCollection); } + public void delete(TreeTestResultCollection ttrCollection) { + getHibernateTemplate().delete(ttrCollection); + } + @SuppressWarnings("unchecked") public SortedSet listCollections() { return new TreeSet(getHibernateTemplate() diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/dao/test/tree/TreeTestResultCollectionDao.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/dao/test/tree/TreeTestResultCollectionDao.java index 1f04d6fee..3b1101ee2 100644 --- a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/dao/test/tree/TreeTestResultCollectionDao.java +++ b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/dao/test/tree/TreeTestResultCollectionDao.java @@ -11,6 +11,8 @@ public interface TreeTestResultCollectionDao { public void update(TreeTestResultCollection ttrCollection); + public void delete(TreeTestResultCollection ttrCollection); + public TreeTestResultCollection getTestResultCollection(String id); public SortedSet listCollections(); -- 2.39.5