02/02: auto delete resource when delete choice
This is an automated email from the git hooks/post-receive script. New commit to branch feature/addPollenResourceApi in repository pollen. See http://git.chorem.org/pollen.git commit 91c71bbf77d40085fecf089136b84906f14119f8 Author: Adrien Garandel <a.garandel@dralagen.fr> Date: Fri Jul 11 17:05:03 2014 +0200 auto delete resource when delete choice --- .../pollen/services/service/ChoiceService.java | 20 +++++++++++++++----- .../services/service/PollenServiceSupport.java | 4 ++++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java index b08c1c5..f75e72e 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/ChoiceService.java @@ -26,13 +26,12 @@ package org.chorem.pollen.services.service; import com.google.common.base.Function; import com.google.common.collect.Sets; import org.apache.commons.collections4.CollectionUtils; -import org.chorem.pollen.persistence.entity.Choice; -import org.chorem.pollen.persistence.entity.ChoiceTopiaDao; -import org.chorem.pollen.persistence.entity.Poll; -import org.chorem.pollen.persistence.entity.PollenPrincipal; +import org.chorem.pollen.persistence.entity.*; import org.chorem.pollen.services.bean.ChoiceBean; +import org.chorem.pollen.services.bean.PollenEntityId; import org.chorem.pollen.services.bean.PollenEntityRef; import org.chorem.pollen.services.service.security.PermissionVerb; +import org.nuiton.topia.persistence.TopiaIdFactory; import java.util.Date; import java.util.List; @@ -173,7 +172,18 @@ public class ChoiceService extends PollenServiceSupport { errors.failIfNotEmpty(); } - //TODO Check if this is not the last choice, if so can not delete + if (choice.getChoiceType() == ChoiceType.IMAGE) { + + PollenEntityId<PollenResource> resourceId = PollenEntityId.newId(PollenResource.class); + resourceId.setReducedId(choice.getChoiceValue()); + TopiaIdFactory topiaIdFactory = serviceContext.getTopiaApplicationContext().getTopiaIdFactory(); + resourceId.decode(topiaIdFactory); + + PollenResource resource = getResourceService().getResource0(resourceId.getEntityId()); + + getPollenResourceDao().delete(resource); + } + getChoiceDao().delete(choice); commit(); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java index beb0dfa..71c2aca 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollenServiceSupport.java @@ -123,6 +123,10 @@ public abstract class PollenServiceSupport implements PollenService { return newService(SecurityService.class); } + protected PollenResourceService getResourceService() { + return newService(PollenResourceService.class); + } + protected PollenUserService getUserService() { return newService(PollenUserService.class); } -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
participants (1)
-
chorem.org scm