Author: fdesbois Date: 2010-02-25 14:13:26 +0100 (Thu, 25 Feb 2010) New Revision: 2885 Added: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenConverter.java Removed: trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/ConverterHelper.java trunk/pollen-business/src/test/java/org/chorem/pollen/business/converters/ trunk/pollen-business/src/test/java/org/chorem/pollen/business/utils/ Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPollConverter.java trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/PropertiesLoader.java trunk/pollen-business/src/main/resources/i18n/pollen-business-en_GB.properties trunk/pollen-business/src/main/resources/i18n/pollen-business-fr_FR.properties trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/PollenExceptionsFilter.java Log: - Change ConverterHelper to PollenConverter : will be the only converter helper needed, the package converters will be deleted - Improve messages and refactor deprecated Copied: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenConverter.java (from rev 2883, trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/ConverterHelper.java) =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenConverter.java (rev 0) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenConverter.java 2010-02-25 13:13:26 UTC (rev 2885) @@ -0,0 +1,277 @@ + +package org.chorem.pollen.business; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.business.dto.ChoiceDTO; +import org.chorem.pollen.business.dto.CommentDTO; +import org.chorem.pollen.business.dto.PollAccountDTO; +import org.chorem.pollen.business.dto.PollDTO; +import org.chorem.pollen.business.dto.PreventRuleDTO; +import org.chorem.pollen.business.dto.VoteDTO; +import org.chorem.pollen.business.dto.VotingListDTO; +import org.chorem.pollen.business.persistence.Choice; +import org.chorem.pollen.business.persistence.Comment; +import org.chorem.pollen.business.persistence.Poll; +import org.chorem.pollen.business.persistence.PollAccount; +import org.chorem.pollen.business.persistence.PreventRule; +import org.chorem.pollen.business.persistence.UserAccount; +import org.chorem.pollen.business.persistence.Vote; +import org.chorem.pollen.business.persistence.VoteToChoice; +import org.chorem.pollen.business.persistence.VotingList; +import org.chorem.pollen.common.ChoiceType; +import org.chorem.pollen.common.PollType; +import org.chorem.pollen.common.VoteCountingType; +import org.chorem.pollen.votecounting.business.NumberMethod; +import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.util.beans.BinderBuilder; +import org.nuiton.util.beans.BinderProvider; + +/** + * ConverterFactory + * + * Created: 22 févr. 2010 + * + * @author fdesbois + * @version $Revision$ + * + * Mise a jour: $Date$ + * par : $Author$ + */ +public class PollenConverter { + + private static final Log log = LogFactory.getLog(PollenConverter.class); + + private static BinderBuilder builder = new BinderBuilder(); + + private static final void prepare(Class<? extends TopiaEntity> entityClass, Class<?> dtoClass, String... properties) { + // Binder DTO -> Entity + builder.createBinderModel(dtoClass, entityClass). + addSimpleProperties(properties); + + BinderProvider.registerBinder(builder); + + // Binder Entity -> DTO + builder.createBinderModel(entityClass, dtoClass). + addSimpleProperties(properties); + //builder.addProperty(TopiaEntity.TOPIA_ID, "id"); + + BinderProvider.registerBinder(builder); + } + + public static void preparePollConverters() { + String[] properties = new String[] { + Poll.TITLE, + Poll.DESCRIPTION, + Poll.BEGIN_CHOICE_DATE, + Poll.END_CHOICE_DATE, + Poll.BEGIN_DATE, + Poll.END_DATE, + Poll.CLOSED, + Poll.ANONYMOUS, + Poll.ANONYMOUS_VOTE_ALLOWED, + Poll.PUBLIC_RESULTS, + Poll.CONTINUOUS_RESULTS, + Poll.CHOICE_ADD_ALLOWED, + Poll.MAX_CHOICE_NB + }; + + prepare(Poll.class, PollDTO.class, properties); + } + + public static void prepareChoiceConverters() { + String[] properties = new String[] { + Choice.NAME, + Choice.DESCRIPTION, + Choice.VALIDATE + }; + + prepare(Choice.class, ChoiceDTO.class, properties); + } + + public static void prepareVotingListConverters() { + String[] properties = new String[] { + VotingList.NAME, + VotingList.WEIGHT + }; + + prepare(VotingList.class, VotingListDTO.class, properties); + } + + public static void preparePollAccountConverters() { + String[] properties = new String[] { + PollAccount.VOTING_ID, + PollAccount.EMAIL + }; + + prepare(PollAccount.class, PollAccountDTO.class, properties); + } + + public static void preparePreventRuleConverters() { + String[] properties = new String[] { + PreventRule.ACTIVE, + PreventRule.METHOD, + PreventRule.ONE_TIME, + PreventRule.REPEATED, + PreventRule.SCOPE, + PreventRule.SENSIBILITY + }; + + prepare(PreventRule.class, PreventRuleDTO.class, properties); + } + + public static void prepareVoteConverters() { + String[] properties = new String[] { + Vote.WEIGHT, + Vote.COMMENT, + Vote.ANONYMOUS + }; + + prepare(Vote.class, VoteDTO.class, properties); + } + + public static void prepareCommentConverters() { + String[] properties = new String[] { + Comment.TEXT, + Comment.POST_DATE, + Comment.AUTHOR + }; + + prepare(Comment.class, CommentDTO.class, properties); + } + + public static Choice convert(ChoiceDTO dto, Choice entity) { + BinderProvider.getBinder(ChoiceDTO.class, Choice.class).copy(dto, entity); + return entity; + } + + public static ChoiceDTO convert(Choice entity, ChoiceDTO dto) { + BinderProvider.getBinder(Choice.class, ChoiceDTO.class).copy(entity, dto); + dto.setId(entity.getTopiaId()); + String name = entity.getName(); + dto.setHidden(name != null + && name.startsWith(NumberMethod.HIDDEN_PREFIX)); + dto.setPollId(entity.getPoll().getTopiaId()); + return dto; + } + + public static Poll convert(PollDTO dto, Poll entity) { + BinderProvider.getBinder(PollDTO.class, Poll.class).copy(dto, entity); + entity.setChoiceType(dto.getChoiceType().name()); + entity.setPollType(dto.getPollType().name()); + entity.setVoteCounting(dto.getVoteCounting().name()); + return entity; + } + + public static PollDTO convert(Poll entity, PollDTO dto) { + BinderProvider.getBinder(Poll.class, PollDTO.class).copy(entity, dto); + dto.setId(entity.getTopiaId()); + dto.setPollId(entity.getPollId()); + dto.setChoiceType(ChoiceType.valueOf(entity.getChoiceType())); + dto.setPollType(PollType.valueOf(entity.getPollType())); + dto.setVoteCounting(VoteCountingType.valueOf(entity.getVoteCounting())); + + PollAccount creator = entity.getCreator(); + UserAccount user = creator.getUserAccount(); + dto.setCreatorId(creator.getTopiaId()); + dto.setCreatorEmail(creator.getEmail()); + if (creator.getUserAccount() != null) { + dto.setUserId(user.getTopiaId()); + } + return dto; + } + + public static VotingList convert(VotingListDTO dto, VotingList entity) { + BinderProvider.getBinder(VotingListDTO.class, VotingList.class).copy(dto, entity); + return entity; + } + + public static VotingListDTO convert(VotingList entity, VotingListDTO dto) { + BinderProvider.getBinder(VotingList.class, VotingListDTO.class).copy(entity, dto); + dto.setId(entity.getTopiaId()); + return dto; + } + + public static PollAccount convert(PollAccountDTO dto, PollAccount entity) { + BinderProvider.getBinder(PollAccountDTO.class, PollAccount.class).copy(dto, entity); + return entity; + } + + public static PollAccountDTO convert(PollAccount entity, PollAccountDTO dto) { + BinderProvider.getBinder(PollAccount.class, PollAccountDTO.class).copy(entity, dto); + dto.setId(entity.getTopiaId()); + dto.setAccountId(entity.getAccountId()); + return dto; + } + + public static PreventRule convert(PreventRuleDTO dto, PreventRule entity) { + BinderProvider.getBinder(PreventRuleDTO.class, PreventRule.class).copy(dto, entity); + return entity; + } + + public static PreventRuleDTO convert(PreventRule entity, PreventRuleDTO dto) { + BinderProvider.getBinder(PreventRule.class, PreventRuleDTO.class).copy(entity, dto); + dto.setId(entity.getTopiaId()); + Poll poll = entity.getPoll(); + dto.setPollId(poll.getTopiaId()); + return dto; + } + + public static Vote convert(VoteDTO dto, Vote entity) { + BinderProvider.getBinder(VoteDTO.class, Vote.class).copy(dto, entity); + return entity; + } + + /** + * Convert a Vote entity to a VoteDTO. + * Add pollId in the DTO corresponding to the poll topiaId owner of the + * vote. Add choices (ChoiceDTO) for vote values. + * The user linked with the vote may be a votingList (group voteCounting) + * or a pollAccount (other voteCounting type). + * + * @param entity Vote + * @param dto VoteDTO + * @return VoteDTO + */ + public static VoteDTO convert(Vote entity, VoteDTO dto) { + BinderProvider.getBinder(Vote.class, VoteDTO.class).copy(entity, dto); + dto.setId(entity.getTopiaId()); + Poll poll = entity.getPoll(); + dto.setPollId(poll.getTopiaId()); + + // Set reference only if not anonymous + //if (!entity.getAnonymous()) { + PollAccount account = entity.getPollAccount(); + VotingList list = entity.getVotingList(); + // vote for a list + if (list != null) { + dto.setVotingListId(list.getTopiaId()); + // vote for a person (pollAccount) + } else if (account != null) { + dto.setPollAccountId(account.getTopiaId()); + } + //} + + // Choices for voteValues + for (VoteToChoice choice : entity.getChoiceVoteToChoice()) { + ChoiceDTO choiceDTO = + convert(choice.getChoice(), new ChoiceDTO()); + choiceDTO.setValue(choice.getVoteValue()); + dto.addChoice(choiceDTO); + } + return dto; + } + + public static Comment convert(CommentDTO dto, Comment entity) { + BinderProvider.getBinder(CommentDTO.class, Comment.class).copy(dto, entity); + return entity; + } + + public static CommentDTO convert(Comment entity, CommentDTO dto) { + BinderProvider.getBinder(Comment.class, CommentDTO.class).copy(entity, dto); + dto.setId(entity.getTopiaId()); + return dto; + } + + +} Property changes on: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenConverter.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL" Added: svn:mergeinfo + Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java 2010-02-25 12:07:51 UTC (rev 2884) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenProperty.java 2010-02-25 13:13:26 UTC (rev 2885) @@ -13,7 +13,7 @@ * par : $Author$ */ public enum PollenProperty { - /** version of the application (maven version) **/ + /** version of the application **/ APP_VERSION("version"), /** url of the server **/ SERVER_URL("siteUrl"), Deleted: trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/ConverterHelper.java =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/ConverterHelper.java 2010-02-25 12:07:51 UTC (rev 2884) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/ConverterHelper.java 2010-02-25 13:13:26 UTC (rev 2885) @@ -1,277 +0,0 @@ - -package org.chorem.pollen.business.converters; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.chorem.pollen.business.dto.ChoiceDTO; -import org.chorem.pollen.business.dto.CommentDTO; -import org.chorem.pollen.business.dto.PollAccountDTO; -import org.chorem.pollen.business.dto.PollDTO; -import org.chorem.pollen.business.dto.PreventRuleDTO; -import org.chorem.pollen.business.dto.VoteDTO; -import org.chorem.pollen.business.dto.VotingListDTO; -import org.chorem.pollen.business.persistence.Choice; -import org.chorem.pollen.business.persistence.Comment; -import org.chorem.pollen.business.persistence.Poll; -import org.chorem.pollen.business.persistence.PollAccount; -import org.chorem.pollen.business.persistence.PreventRule; -import org.chorem.pollen.business.persistence.UserAccount; -import org.chorem.pollen.business.persistence.Vote; -import org.chorem.pollen.business.persistence.VoteToChoice; -import org.chorem.pollen.business.persistence.VotingList; -import org.chorem.pollen.common.ChoiceType; -import org.chorem.pollen.common.PollType; -import org.chorem.pollen.common.VoteCountingType; -import org.chorem.pollen.votecounting.business.NumberMethod; -import org.nuiton.topia.persistence.TopiaEntity; -import org.nuiton.util.beans.BinderBuilder; -import org.nuiton.util.beans.BinderProvider; - -/** - * ConverterFactory - * - * Created: 22 févr. 2010 - * - * @author fdesbois - * @version $Revision$ - * - * Mise a jour: $Date$ - * par : $Author$ - */ -public class ConverterHelper { - - private static final Log log = LogFactory.getLog(ConverterHelper.class); - - private static BinderBuilder builder = new BinderBuilder(); - - private static final void prepare(Class<? extends TopiaEntity> entityClass, Class<?> dtoClass, String... properties) { - // Binder DTO -> Entity - builder.createBinderModel(dtoClass, entityClass). - addSimpleProperties(properties); - - BinderProvider.registerBinder(builder); - - // Binder Entity -> DTO - builder.createBinderModel(entityClass, dtoClass). - addSimpleProperties(properties); - //builder.addProperty(TopiaEntity.TOPIA_ID, "id"); - - BinderProvider.registerBinder(builder); - } - - public static void preparePollConverters() { - String[] properties = new String[] { - Poll.TITLE, - Poll.DESCRIPTION, - Poll.BEGIN_CHOICE_DATE, - Poll.END_CHOICE_DATE, - Poll.BEGIN_DATE, - Poll.END_DATE, - Poll.CLOSED, - Poll.ANONYMOUS, - Poll.ANONYMOUS_VOTE_ALLOWED, - Poll.PUBLIC_RESULTS, - Poll.CONTINUOUS_RESULTS, - Poll.CHOICE_ADD_ALLOWED, - Poll.MAX_CHOICE_NB - }; - - prepare(Poll.class, PollDTO.class, properties); - } - - public static void prepareChoiceConverters() { - String[] properties = new String[] { - Choice.NAME, - Choice.DESCRIPTION, - Choice.VALIDATE - }; - - prepare(Choice.class, ChoiceDTO.class, properties); - } - - public static void prepareVotingListConverters() { - String[] properties = new String[] { - VotingList.NAME, - VotingList.WEIGHT - }; - - prepare(VotingList.class, VotingListDTO.class, properties); - } - - public static void preparePollAccountConverters() { - String[] properties = new String[] { - PollAccount.VOTING_ID, - PollAccount.EMAIL - }; - - prepare(PollAccount.class, PollAccountDTO.class, properties); - } - - public static void preparePreventRuleConverters() { - String[] properties = new String[] { - PreventRule.ACTIVE, - PreventRule.METHOD, - PreventRule.ONE_TIME, - PreventRule.REPEATED, - PreventRule.SCOPE, - PreventRule.SENSIBILITY - }; - - prepare(PreventRule.class, PreventRuleDTO.class, properties); - } - - public static void prepareVoteConverters() { - String[] properties = new String[] { - Vote.WEIGHT, - Vote.COMMENT, - Vote.ANONYMOUS - }; - - prepare(Vote.class, VoteDTO.class, properties); - } - - public static void prepareCommentConverters() { - String[] properties = new String[] { - Comment.TEXT, - Comment.POST_DATE, - Comment.AUTHOR - }; - - prepare(Comment.class, CommentDTO.class, properties); - } - - public static Choice convert(ChoiceDTO dto, Choice entity) { - BinderProvider.getBinder(ChoiceDTO.class, Choice.class).copy(dto, entity); - return entity; - } - - public static ChoiceDTO convert(Choice entity, ChoiceDTO dto) { - BinderProvider.getBinder(Choice.class, ChoiceDTO.class).copy(entity, dto); - dto.setId(entity.getTopiaId()); - String name = entity.getName(); - dto.setHidden(name != null - && name.startsWith(NumberMethod.HIDDEN_PREFIX)); - dto.setPollId(entity.getPoll().getTopiaId()); - return dto; - } - - public static Poll convert(PollDTO dto, Poll entity) { - BinderProvider.getBinder(PollDTO.class, Poll.class).copy(dto, entity); - entity.setChoiceType(dto.getChoiceType().name()); - entity.setPollType(dto.getPollType().name()); - entity.setVoteCounting(dto.getVoteCounting().name()); - return entity; - } - - public static PollDTO convert(Poll entity, PollDTO dto) { - BinderProvider.getBinder(Poll.class, PollDTO.class).copy(entity, dto); - dto.setId(entity.getTopiaId()); - dto.setPollId(entity.getPollId()); - dto.setChoiceType(ChoiceType.valueOf(entity.getChoiceType())); - dto.setPollType(PollType.valueOf(entity.getPollType())); - dto.setVoteCounting(VoteCountingType.valueOf(entity.getVoteCounting())); - - PollAccount creator = entity.getCreator(); - UserAccount user = creator.getUserAccount(); - dto.setCreatorId(creator.getTopiaId()); - dto.setCreatorEmail(creator.getEmail()); - if (creator.getUserAccount() != null) { - dto.setUserId(user.getTopiaId()); - } - return dto; - } - - public static VotingList convert(VotingListDTO dto, VotingList entity) { - BinderProvider.getBinder(VotingListDTO.class, VotingList.class).copy(dto, entity); - return entity; - } - - public static VotingListDTO convert(VotingList entity, VotingListDTO dto) { - BinderProvider.getBinder(VotingList.class, VotingListDTO.class).copy(entity, dto); - dto.setId(entity.getTopiaId()); - return dto; - } - - public static PollAccount convert(PollAccountDTO dto, PollAccount entity) { - BinderProvider.getBinder(PollAccountDTO.class, PollAccount.class).copy(dto, entity); - return entity; - } - - public static PollAccountDTO convert(PollAccount entity, PollAccountDTO dto) { - BinderProvider.getBinder(PollAccount.class, PollAccountDTO.class).copy(entity, dto); - dto.setId(entity.getTopiaId()); - dto.setAccountId(entity.getAccountId()); - return dto; - } - - public static PreventRule convert(PreventRuleDTO dto, PreventRule entity) { - BinderProvider.getBinder(PreventRuleDTO.class, PreventRule.class).copy(dto, entity); - return entity; - } - - public static PreventRuleDTO convert(PreventRule entity, PreventRuleDTO dto) { - BinderProvider.getBinder(PreventRule.class, PreventRuleDTO.class).copy(entity, dto); - dto.setId(entity.getTopiaId()); - Poll poll = entity.getPoll(); - dto.setPollId(poll.getTopiaId()); - return dto; - } - - public static Vote convert(VoteDTO dto, Vote entity) { - BinderProvider.getBinder(VoteDTO.class, Vote.class).copy(dto, entity); - return entity; - } - - /** - * Convert a Vote entity to a VoteDTO. - * Add pollId in the DTO corresponding to the poll topiaId owner of the - * vote. Add choices (ChoiceDTO) for vote values. - * The user linked with the vote may be a votingList (group voteCounting) - * or a pollAccount (other voteCounting type). - * - * @param entity Vote - * @param dto VoteDTO - * @return VoteDTO - */ - public static VoteDTO convert(Vote entity, VoteDTO dto) { - BinderProvider.getBinder(Vote.class, VoteDTO.class).copy(entity, dto); - dto.setId(entity.getTopiaId()); - Poll poll = entity.getPoll(); - dto.setPollId(poll.getTopiaId()); - - // Set reference only if not anonymous - //if (!entity.getAnonymous()) { - PollAccount account = entity.getPollAccount(); - VotingList list = entity.getVotingList(); - // vote for a list - if (list != null) { - dto.setVotingListId(list.getTopiaId()); - // vote for a person (pollAccount) - } else if (account != null) { - dto.setPollAccountId(account.getTopiaId()); - } - //} - - // Choices for voteValues - for (VoteToChoice choice : entity.getChoiceVoteToChoice()) { - ChoiceDTO choiceDTO = - convert(choice.getChoice(), new ChoiceDTO()); - choiceDTO.setValue(choice.getVoteValue()); - dto.addChoice(choiceDTO); - } - return dto; - } - - public static Comment convert(CommentDTO dto, Comment entity) { - BinderProvider.getBinder(CommentDTO.class, Comment.class).copy(dto, entity); - return entity; - } - - public static CommentDTO convert(Comment entity, CommentDTO dto) { - BinderProvider.getBinder(Comment.class, CommentDTO.class).copy(entity, dto); - dto.setId(entity.getTopiaId()); - return dto; - } - - -} Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPollConverter.java =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPollConverter.java 2010-02-25 12:07:51 UTC (rev 2884) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPollConverter.java 2010-02-25 13:13:26 UTC (rev 2885) @@ -16,6 +16,7 @@ package org.chorem.pollen.business.converters; +import org.chorem.pollen.business.PollenConverter; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -61,7 +62,7 @@ */ @Deprecated public PollDTO createPollDTO(Poll ePoll) { - PollDTO pollDTO = ConverterHelper.convert(ePoll, new PollDTO()); + PollDTO pollDTO = PollenConverter.convert(ePoll, new PollDTO()); // pollDTO.setId(ePoll.getTopiaId()); // pollDTO.setPollId(ePoll.getPollId()); @@ -95,7 +96,7 @@ } for (Comment comment : ePoll.getComment()) { CommentDTO dto = - ConverterHelper.convert(comment, new CommentDTO()); + PollenConverter.convert(comment, new CommentDTO()); pollDTO.addComment(dto); } // if (ePoll.getComment().size() > 0) { Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java 2010-02-25 12:07:51 UTC (rev 2884) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java 2010-02-25 13:13:26 UTC (rev 2885) @@ -27,7 +27,7 @@ import org.apache.commons.logging.LogFactory; import org.chorem.pollen.business.PollenBusinessException; import org.chorem.pollen.business.PollenContext; -import org.chorem.pollen.business.converters.ConverterHelper; +import org.chorem.pollen.business.PollenConverter; import org.chorem.pollen.business.converters.DataPollConverter; import org.chorem.pollen.business.converters.DataVotingListConverter; import org.chorem.pollen.business.dto.ChoiceDTO; @@ -79,13 +79,13 @@ public ServicePollImpl() { rootContext = PollenContext.getRootContext(); - ConverterHelper.preparePollConverters(); - ConverterHelper.prepareChoiceConverters(); - ConverterHelper.prepareVotingListConverters(); - ConverterHelper.preparePollAccountConverters(); - ConverterHelper.preparePreventRuleConverters(); - ConverterHelper.prepareVoteConverters(); - ConverterHelper.prepareCommentConverters(); + PollenConverter.preparePollConverters(); + PollenConverter.prepareChoiceConverters(); + PollenConverter.prepareVotingListConverters(); + PollenConverter.preparePollAccountConverters(); + PollenConverter.preparePreventRuleConverters(); + PollenConverter.prepareVoteConverters(); + PollenConverter.prepareCommentConverters(); } @Override @@ -99,7 +99,7 @@ // Create with a new pollId generated for links Poll entity = pollDAO.create(PollenContext.createPollenUrlId()); - ConverterHelper.convert(pollDTO, entity); + PollenConverter.convert(pollDTO, entity); // ** Manage the poll creator PollAccount creator = prepareCreator(transaction, pollDTO); @@ -109,7 +109,7 @@ ChoiceDAO choiceDAO = PollenModelDAOHelper.getChoiceDAO(transaction); for (ChoiceDTO choiceDTO : pollDTO.getChoiceDTOs()) { Choice choice = - ConverterHelper.convert(choiceDTO, choiceDAO.create()); + PollenConverter.convert(choiceDTO, choiceDAO.create()); choice.setPoll(entity); } @@ -124,7 +124,7 @@ PollenModelDAOHelper.getPreventRuleDAO(transaction); for (PreventRuleDTO ruleDTO : pollDTO.getPreventRuleDTOs()) { PreventRule rule = - ConverterHelper.convert(ruleDTO, ruleDAO.create()); + PollenConverter.convert(ruleDTO, ruleDAO.create()); rule.setPoll(entity); } @@ -204,7 +204,7 @@ VotingListDAO dao = PollenModelDAOHelper.getVotingListDAO(transaction); VotingList votingList = - ConverterHelper.convert(listDTO, dao.create()); + PollenConverter.convert(listDTO, dao.create()); PollAccountDAO pollAccountDAO = PollenModelDAOHelper.getPollAccountDAO(transaction); @@ -218,7 +218,7 @@ if (account == null) { String accountId = PollenContext.createPollenUrlId(); account = pollAccountDAO.create(accountId); - ConverterHelper.convert(accountDTO, account); + PollenConverter.convert(accountDTO, account); } // Create association between VotingList and PollAccount @@ -241,14 +241,14 @@ Poll pollEntity = pollDAO.findByTopiaId(pollDTO.getId()); - ConverterHelper.convert(pollDTO, pollEntity); + PollenConverter.convert(pollDTO, pollEntity); ChoiceDAO choiceDAO = PollenModelDAOHelper.getChoiceDAO(transaction); // ** Update choices (no add, no remove) for (ChoiceDTO choiceDTO : pollDTO.getChoiceDTOs()) { Choice choice = choiceDAO.findByTopiaId(choiceDTO.getId()); - ConverterHelper.convert(choiceDTO, choice); + PollenConverter.convert(choiceDTO, choice); choice.update(); } @@ -295,7 +295,8 @@ return true; } catch (Exception eee) { PollenContext.doCatch(eee, - _("pollen.error.servicePoll.delete", pollId), transaction); + _("pollen.error.servicePoll.deletePoll", pollId), + transaction); return false; } finally { PollenContext.doFinally(transaction); @@ -323,7 +324,7 @@ Poll pollEntity = pollDAO.findByTopiaId(id); if (pollEntity != null) { - result = ConverterHelper.convert(pollEntity, new PollDTO()); + result = PollenConverter.convert(pollEntity, new PollDTO()); } // if (pollEntity != null) { @@ -359,33 +360,33 @@ Poll pollEntity = pollDAO.findByPollId(pollId); if (pollEntity != null) { - result = ConverterHelper.convert(pollEntity, new PollDTO()); + result = PollenConverter.convert(pollEntity, new PollDTO()); // Load choices for (Choice choice : pollEntity.getChoice()) { ChoiceDTO dto = - ConverterHelper.convert(choice, new ChoiceDTO()); + PollenConverter.convert(choice, new ChoiceDTO()); result.addChoice(dto); } // Load votes for (Vote vote : pollEntity.getVote()) { VoteDTO dto = - ConverterHelper.convert(vote, new VoteDTO()); + PollenConverter.convert(vote, new VoteDTO()); result.addVote(dto); } // Load comments for (Comment comment : pollEntity.getComment()) { CommentDTO dto = - ConverterHelper.convert(comment, new CommentDTO()); + PollenConverter.convert(comment, new CommentDTO()); result.addComment(dto); } // Load preventRules for (PreventRule rule : pollEntity.getPreventRule()) { PreventRuleDTO dto = - ConverterHelper.convert(rule, new PreventRuleDTO()); + PollenConverter.convert(rule, new PreventRuleDTO()); result.addPreventRule(dto); } @@ -661,7 +662,7 @@ // Create the new comment CommentDAO dao = PollenModelDAOHelper.getCommentDAO(transaction); Comment eComment = - ConverterHelper.convert(comment, dao.create()); + PollenConverter.convert(comment, dao.create()); // Get the poll entity corresponding Poll ePoll = PollenModelDAOHelper.getPollDAO(transaction). @@ -701,6 +702,8 @@ Poll ePoll = PollenModelDAOHelper.getPollDAO(transaction). findByTopiaId(poll.getId()); + // The remove will delete the comment because no poll will be + // attached to him (delete-orphan) ePoll.removeComment(eComment); transaction.commitTransaction(); @@ -710,7 +713,8 @@ } catch (Exception eee) { PollenContext.doCatch(eee, - _("pollen.error.servicePoll.deleteComment"), transaction); + _("pollen.error.servicePoll.deleteComment", commentId, + poll.getTitle(), poll.getId()), transaction); } finally { PollenContext.doFinally(transaction); } Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/PropertiesLoader.java =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/PropertiesLoader.java 2010-02-25 12:07:51 UTC (rev 2884) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/PropertiesLoader.java 2010-02-25 13:13:26 UTC (rev 2885) @@ -28,7 +28,10 @@ * * @author rannou * @version $Id$ + * @deprecated use {@link org.chorem.pollen.business.PollenContext } to manage + * configuration using {@link org.nuiton.util.ApplicationConfig } */ +@Deprecated public class PropertiesLoader { /** log. */ Modified: trunk/pollen-business/src/main/resources/i18n/pollen-business-en_GB.properties =================================================================== --- trunk/pollen-business/src/main/resources/i18n/pollen-business-en_GB.properties 2010-02-25 12:07:51 UTC (rev 2884) +++ trunk/pollen-business/src/main/resources/i18n/pollen-business-en_GB.properties 2010-02-25 13:13:26 UTC (rev 2885) @@ -8,6 +8,7 @@ pollen.error.servicePoll.createPoll= pollen.error.servicePoll.delete= pollen.error.servicePoll.deleteComment= +pollen.error.servicePoll.deletePoll= pollen.error.servicePoll.getAllPolls= pollen.error.servicePoll.getPoll= pollen.error.servicePoll.updatePoll= Modified: trunk/pollen-business/src/main/resources/i18n/pollen-business-fr_FR.properties =================================================================== --- trunk/pollen-business/src/main/resources/i18n/pollen-business-fr_FR.properties 2010-02-25 12:07:51 UTC (rev 2884) +++ trunk/pollen-business/src/main/resources/i18n/pollen-business-fr_FR.properties 2010-02-25 13:13:26 UTC (rev 2885) @@ -6,9 +6,8 @@ pollen.error.context.stop=Erreur lors de l'arr\u00EAt de l'application pollen.error.servicePoll.addComment=Impossible d'ajouter un nouveau commentaire cr\u00E9\u00E9 par %1$s pour le sondage %2$s (%3$s) pollen.error.servicePoll.createPoll=Impossible d'enregistrer le sondage %1$s cr\u00E9\u00E9 par %2$s -pollen.error.servicePoll.delete= -pollen.error.servicePoll.deleteComment= -pollen.error.servicePoll.deletePoll=Impossible de supprimer le sondage ayant pour identifiant ToPIA \: %1$s +pollen.error.servicePoll.deleteComment=Impossible de supprimer le commentaire ayant pour identifiant "%1$s", appartenenant au sondage %2$s (%3$s) +pollen.error.servicePoll.deletePoll=Impossible de supprimer le sondage ayant pour identifiant "%1$s" pollen.error.servicePoll.getAllPolls= pollen.error.servicePoll.getPoll= pollen.error.servicePoll.updatePoll=Impossible de mettre \u00E0 jour le sondage %1$s (%2$s) Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java 2010-02-25 12:07:51 UTC (rev 2884) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/components/HeadLink.java 2010-02-25 13:13:26 UTC (rev 2885) @@ -31,7 +31,6 @@ import org.apache.tapestry5.annotations.Parameter; import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.services.Response; -import org.chorem.pollen.business.PollenBusinessException; import org.chorem.pollen.ui.base.ContextLink; import org.slf4j.Logger; @@ -82,7 +81,13 @@ writer.end(); } - /** Affichage du fichier */ + /** + * Affichage du fichier + * + * @param href + * @param type + * @return StreamResponse + */ public StreamResponse onFileLink(final String href, final String type) { // security : src containing .. are filtered, to not access to full system @@ -111,14 +116,17 @@ this.contentType = contentType; } + @Override public String getContentType() { return contentType; } + @Override public InputStream getStream() throws IOException { return stream; } + @Override public void prepareResponse(Response arg0) { } Modified: trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/PollenExceptionsFilter.java =================================================================== --- trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/PollenExceptionsFilter.java 2010-02-25 12:07:51 UTC (rev 2884) +++ trunk/pollen-ui/src/main/java/org/chorem/pollen/ui/filters/PollenExceptionsFilter.java 2010-02-25 13:13:26 UTC (rev 2885) @@ -11,7 +11,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.chorem.pollen.business.utils.ContextUtil; /** * Filtre permettant de capturer les exceptions. Ce filtre capture les @@ -47,14 +46,14 @@ // capture des exceptions try { chain.doFilter(request, response); - } catch (Exception e) { + } catch (Exception eee) { if (log.isDebugEnabled()) { - log.debug("Exception capturée", e); + log.debug("Exception capturée", eee); } // si la connexion est fermée, reconnexion et affichage d'un message - ContextUtil.getInstance().buildContext(); + //ContextUtil.getInstance().buildContext(); } }