This is an automated email from the git hooks/post-receive script. New commit to branch feature/editVote in repository pollen. See http://git.chorem.org/pollen.git commit 7cadb32f89c3293f479eb3d44ae29bd46039f8da Author: Adrien Garandel <a.garandel@dralagen.fr> Date: Thu Jul 31 11:29:54 2014 +0200 fix all-delete-orphan when editVote --- .../pollen/services/service/VoteService.java | 57 +++++++++++++--------- 1 file changed, 33 insertions(+), 24 deletions(-) diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java index fb663ed..b1bf6ad 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java @@ -39,10 +39,7 @@ import org.chorem.pollen.services.bean.VoteBean; import org.chorem.pollen.services.bean.VoteToChoiceBean; import org.chorem.pollen.services.service.security.PermissionVerb; -import java.util.Date; -import java.util.HashSet; -import java.util.List; -import java.util.Set; +import java.util.*; /** * TODO @@ -283,15 +280,35 @@ public class VoteService extends PollenServiceSupport { // -- List of VoteToChoice -- // - Set<VoteToChoice> choicesToSave = new HashSet<>(); - for (VoteToChoiceBean input : vote.getChoice()) { + if (voteExist) { - VoteToChoice voteToChoice = createVoteToChoice(toSave, input); - choicesToSave.add(voteToChoice); + //TODO dralagen 31/07/14 : review code for persisted Collection - } + Collection<VoteToChoice> choicesToSave = toSave.getVoteToChoice(); + for(VoteToChoiceBean input: vote.getChoice()) { + if (input.isPersisted()) { + for ( VoteToChoice voteToChoice : choicesToSave ) { + if ( input.getChoiceId().getEntityId().equals(voteToChoice.getChoice().getTopiaId()) ) { + voteToChoice.setVoteValue(input.getVoteValue()); + } + } + } + else { + choicesToSave.add(createVoteToChoice(toSave, input)); + } + } + } else { + + Set<VoteToChoice> choicesToSave = new HashSet<>(); + for ( VoteToChoiceBean input : vote.getChoice() ) { - toSave.setVoteToChoice(choicesToSave); + VoteToChoice voteToChoice = createVoteToChoice(toSave, input); + choicesToSave.add(voteToChoice); + + } + + toSave.setVoteToChoice(choicesToSave); + } return toSave; @@ -335,27 +352,19 @@ public class VoteService extends PollenServiceSupport { protected VoteToChoice createVoteToChoice(Vote vote, VoteToChoiceBean source) { - VoteToChoiceTopiaDao voteToChoiceDao = getVoteToChoiceDao(); - VoteToChoice result; - if (source.isPersisted()) { - - result = getVoteToChoice(vote, source.getEntityId()); - - } else { - - result = voteToChoiceDao.create(); + VoteToChoiceTopiaDao voteToChoiceDao = getVoteToChoiceDao(); - String choiceId = source.getChoiceId().getEntityId(); + result = voteToChoiceDao.create(); - Choice choiceLoaded = getChoiceDao().forTopiaIdEquals(choiceId).findUnique(); + String choiceId = source.getChoiceId().getEntityId(); - result.setChoice(choiceLoaded); + Choice choiceLoaded = getChoiceDao().forTopiaIdEquals(choiceId).findUnique(); - vote.addVoteToChoice(result); + result.setChoice(choiceLoaded); - } + vote.addVoteToChoice(result); result.setVoteValue(source.getVoteValue()); -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.