r2878 - in trunk: pollen-business/src/main/java/org/chorem/pollen/business pollen-business/src/main/java/org/chorem/pollen/business/converters pollen-business/src/main/java/org/chorem/pollen/business/migration pollen-business/src/main/java/org/chorem/pollen/business/services pollen-business/src/main/java/org/chorem/pollen/business/utils pollen-business/src/main/resources/oldmappings/pollen pollen-business/src/main/resources/oldmappings/pollen/1.3 pollen-business/src/main/resources/oldmappin
Author: fdesbois Date: 2010-02-23 16:12:23 +0100 (Tue, 23 Feb 2010) New Revision: 2878 Added: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenException.java trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/ChoiceImpl.hbm.xml trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/CommentImpl.hbm.xml trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PersonListImpl.hbm.xml trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PersonToListImpl.hbm.xml trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PollAccountImpl.hbm.xml trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PollImpl.hbm.xml trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PreventRuleImpl.hbm.xml trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/ResultImpl.hbm.xml trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/UserAccountImpl.hbm.xml trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/VoteImpl.hbm.xml trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/VoteToChoiceImpl.hbm.xml trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/VotingListImpl.hbm.xml Removed: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenBusinessException.java trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/EnumController.java trunk/pollen-business/src/test/java/org/chorem/pollen/business/converters/EnumControllerTest.java Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/ConverterHelper.java trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPollConverter.java trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataResultConverter.java trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataVoteCountingConverter.java trunk/pollen-business/src/main/java/org/chorem/pollen/business/migration/PollenMigrationCallbackHandler.java trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceResultsImpl.java trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/ContextUtil.java trunk/pollen-business/src/main/xmi/pollen.zargo trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java trunk/pollen-votecounting/src/main/java/org/chorem/pollen/common/PollType.java Log: - Refactor entities used as enum in code (PollType, ChoiceType, VoteCounting) -> model migration to 1.3 - Refactor updatePoll method Deleted: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenBusinessException.java =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenBusinessException.java 2010-02-23 09:39:10 UTC (rev 2877) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenBusinessException.java 2010-02-23 15:12:23 UTC (rev 2878) @@ -1,23 +0,0 @@ - -package org.chorem.pollen.business; - -/** - * PollenBusinessException - * - * Created: 22 févr. 2010 - * - * @author fdesbois - * @version $Revision$ - * - * Mise a jour: $Date$ - * par : $Author$ - */ -public class PollenBusinessException extends Exception { - - private static final long serialVersionUID = 1L; - - public PollenBusinessException(String message) { - super(message); - } - -} Added: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenException.java =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenException.java (rev 0) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenException.java 2010-02-23 15:12:23 UTC (rev 2878) @@ -0,0 +1,23 @@ + +package org.chorem.pollen.business; + +/** + * PollenException + * + * Created: 23 févr. 2010 + * + * @author fdesbois + * @version $Revision$ + * + * Mise a jour: $Date$ + * par : $Author$ + */ +public class PollenException extends RuntimeException { + + private static final long serialVersionUID = 1L; + + public PollenException(String message, Throwable eee) { + super(message, eee); + } + +} Property changes on: trunk/pollen-business/src/main/java/org/chorem/pollen/business/PollenException.java ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision HeadURL" Modified: 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-23 09:39:10 UTC (rev 2877) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/ConverterHelper.java 2010-02-23 15:12:23 UTC (rev 2878) @@ -1,6 +1,8 @@ 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.PollAccountDTO; import org.chorem.pollen.business.dto.PollDTO; @@ -11,6 +13,9 @@ import org.chorem.pollen.business.persistence.PollAccount; import org.chorem.pollen.business.persistence.PreventRule; 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.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.beans.BinderBuilder; import org.nuiton.util.beans.BinderProvider; @@ -28,6 +33,8 @@ */ 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) { @@ -121,12 +128,18 @@ 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.setChoiceType(ChoiceType.valueOf(entity.getChoiceType())); + dto.setPollType(PollType.valueOf(entity.getPollType())); + dto.setVoteCounting(VoteCountingType.valueOf(entity.getVoteCounting())); 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-23 09:39:10 UTC (rev 2877) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataPollConverter.java 2010-02-23 15:12:23 UTC (rev 2878) @@ -26,15 +26,15 @@ import org.chorem.pollen.business.dto.PollDTO; import org.chorem.pollen.business.dto.PreventRuleDTO; import org.chorem.pollen.business.persistence.Choice; -import org.chorem.pollen.business.persistence.ChoiceType; -import org.chorem.pollen.business.persistence.ChoiceTypeDAO; import org.chorem.pollen.business.persistence.Poll; -import org.chorem.pollen.business.persistence.PollenModelDAOHelper; import org.chorem.pollen.business.persistence.PreventRule; import org.chorem.pollen.business.services.ServiceChoice; import org.chorem.pollen.business.services.ServiceChoiceImpl; import org.chorem.pollen.business.services.ServicePreventRule; import org.chorem.pollen.business.services.ServicePreventRuleImpl; +import org.chorem.pollen.common.ChoiceType; +import org.chorem.pollen.common.PollType; +import org.chorem.pollen.common.VoteCountingType; import org.nuiton.topia.TopiaException; /** @@ -54,63 +54,14 @@ private static final Log log = LogFactory.getLog(DataPollConverter.class); /** - * Création d'un sondage à partir d'un dto sondage. - * - * @param pollDTO le dto sondage - * @param ePoll l'entité sondage - * @deprecated use - */ - @Deprecated - public void populatePollEntity(PollDTO pollDTO, Poll ePoll) { - - //Binder bind; - - ConverterHelper.convert(pollDTO, ePoll); - - EnumController enumCtrl = new EnumController(super.transaction); - enumCtrl.setChoiceType(pollDTO.getChoiceType(), ePoll); - enumCtrl.setPollType(pollDTO.getPollType(), ePoll); - enumCtrl.setVoteCounting(pollDTO.getVoteCounting(), ePoll); - -// ePoll.setPollId(pollDTO.getPollId()); -// ePoll.setTitle(pollDTO.getTitle()); -// ePoll.setDescription(pollDTO.getDescription()); -// ePoll.setBeginChoiceDate(pollDTO.getBeginChoiceDate()); -// ePoll.setEndChoiceDate(pollDTO.getEndChoiceDate()); -// ePoll.setBeginDate(pollDTO.getBeginDate()); -// ePoll.setEndDate(pollDTO.getEndDate()); -// ePoll.setClosed(pollDTO.isClosed()); -// ePoll.setAnonymous(pollDTO.isAnonymous()); -// ePoll.setAnonymousVoteAllowed(pollDTO.isAnonymousVoteAllowed()); -// ePoll.setPublicResults(pollDTO.isPublicResults()); -// ePoll.setContinuousResults(pollDTO.isContinuousResults()); -// ePoll.setChoiceAddAllowed(pollDTO.isChoiceAddAllowed()); -// ePoll.setMaxChoiceNb(pollDTO.getMaxChoiceNb()); - -// EnumController enumCtrl = new EnumController(transaction); -// enumCtrl.setChoiceType(pollDTO.getChoiceType(), entity); -// enumCtrl.setPollType(pollDTO.getPollType(), entity); -// enumCtrl.setVoteCounting(pollDTO.getVoteCounting(), entity); - - /*if (pollDTO.getCreatorId().length() > 0) { - PollAccountDAO pollAccountDAO = PollenModelDAOHelper.getPollAccountDAO(super.transaction); - PollAccount PollAccountEntity = pollAccountDAO.findByTopiaId(pollDTO.getCreatorId()); - ePoll.setCreator(PollAccountEntity); - }*/ - } - - /** * Création d'un dto sondage à partir d'une entité. * * @param ePoll l'entité sondage * @return le dto sondage */ public PollDTO createPollDTO(Poll ePoll) { - PollDTO pollDTO = new PollDTO(); + PollDTO pollDTO = ConverterHelper.convert(ePoll, new PollDTO()); - ConverterHelper.convert(ePoll, pollDTO); - //pollDTO.setId(ePoll.getTopiaId()); - // pollDTO.setId(ePoll.getTopiaId()); // pollDTO.setPollId(ePoll.getPollId()); // pollDTO.setTitle(ePoll.getTitle()); @@ -178,7 +129,9 @@ * * @param pollDTO le dto sondage * @param ePoll l'entité sondage + * @deprecated use dao managment instead */ + @Deprecated public void persistChoices(PollDTO pollDTO, Poll ePoll) throws TopiaException { Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataResultConverter.java =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataResultConverter.java 2010-02-23 09:39:10 UTC (rev 2877) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataResultConverter.java 2010-02-23 15:12:23 UTC (rev 2878) @@ -27,6 +27,8 @@ import org.chorem.pollen.business.persistence.PollenModelDAOHelper; import org.chorem.pollen.business.persistence.Result; import org.chorem.pollen.business.persistence.ResultDAO; +import org.chorem.pollen.common.ChoiceType; +import org.chorem.pollen.common.VoteCountingType; import org.chorem.pollen.votecounting.business.NumberMethod; import org.chorem.pollen.votecounting.dto.ChoiceDTO; import org.chorem.pollen.votecounting.dto.VoteCountingResultDTO; @@ -70,8 +72,9 @@ eResult.setPoll(ePoll); eResult.setResultValue(String.valueOf(choice.getValue())); - EnumController enumCtrl = new EnumController(transaction); - enumCtrl.setVoteCounting(dto.getTypeVoteCounting(), eResult); +// EnumController enumCtrl = new EnumController(transaction); +// enumCtrl.setVoteCounting(dto.getTypeVoteCounting(), eResult); + eResult.setVoteCounting(dto.getTypeVoteCounting().name()); //} } } @@ -94,8 +97,8 @@ resName.startsWith(NumberMethod.HIDDEN_PREFIX)); dto.setValue(res.getResultValue()); dto.setByGroup(res.getByGroup()); - dto.setChoiceType(EnumController.getChoiceType(ePoll)); - dto.setVoteCounting(EnumController.getVoteCountingType(ePoll)); + dto.setChoiceType(ChoiceType.valueOf(ePoll.getChoiceType())); + dto.setVoteCounting(VoteCountingType.valueOf(ePoll.getVoteCounting())); results.add(dto); } return results; Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataVoteCountingConverter.java =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataVoteCountingConverter.java 2010-02-23 09:39:10 UTC (rev 2877) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/DataVoteCountingConverter.java 2010-02-23 15:12:23 UTC (rev 2878) @@ -26,6 +26,9 @@ import org.chorem.pollen.business.persistence.VotingList; import org.chorem.pollen.business.services.ServicePollAccount; import org.chorem.pollen.business.services.ServicePollAccountImpl; +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.chorem.pollen.votecounting.dto.CommentDTO; import org.chorem.pollen.votecounting.dto.PollChoiceDTO; @@ -66,9 +69,9 @@ pollDTO.setCreatorId(ePoll.getCreator().getVotingId()); pollDTO.setCreatorEmail(ePoll.getCreator().getEmail()); pollDTO.setMaxChoiceNb(ePoll.getMaxChoiceNb()); - pollDTO.setPollType(EnumController.getPollType(ePoll)); - pollDTO.setChoiceType(EnumController.getChoiceType(ePoll)); - pollDTO.setVoteCounting(EnumController.getVoteCountingType(ePoll)); + pollDTO.setPollType(PollType.valueOf(ePoll.getPollType())); + pollDTO.setChoiceType(ChoiceType.valueOf(ePoll.getChoiceType())); + pollDTO.setVoteCounting(VoteCountingType.valueOf(ePoll.getVoteCounting())); for (Comment comment : ePoll.getComment()) { pollDTO.getComments().add(createPollCommentDTO(comment)); Deleted: trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/EnumController.java =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/EnumController.java 2010-02-23 09:39:10 UTC (rev 2877) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/converters/EnumController.java 2010-02-23 15:12:23 UTC (rev 2878) @@ -1,147 +0,0 @@ -/* *##% Pollen - * Copyright (C) 2009 CodeLutin - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. ##%*/ - -package org.chorem.pollen.business.converters; - -import org.chorem.pollen.business.persistence.ChoiceTypeDAO; -import org.chorem.pollen.business.persistence.Poll; -import org.chorem.pollen.business.persistence.PollTypeDAO; -import org.chorem.pollen.business.persistence.PollenModelDAOHelper; -import org.chorem.pollen.business.persistence.Result; -import org.chorem.pollen.business.persistence.VoteCountingDAO; -import org.chorem.pollen.business.utils.ContextUtil; -import org.chorem.pollen.common.ChoiceType; -import org.chorem.pollen.common.PollType; -import org.chorem.pollen.common.VoteCountingType; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; - -/** - * Classe de gestion des énumérations. - * - * @author fdesbois - * @version $Id$ - */ -public class EnumController extends DataConverter { - - public EnumController(TopiaContext transaction) { - super(transaction); - } - - /** - * - * @param type - * @param ePoll - * @deprecated use directly daos when needed - */ - @Deprecated - public void setChoiceType(ChoiceType type, Poll ePoll) { - try { - if (type != null) { - ChoiceTypeDAO dao = PollenModelDAOHelper - .getChoiceTypeDAO(transaction); - ePoll.setChoiceType(dao.findByName(type.name())); - } - } catch (TopiaException e) { - ContextUtil.doCatch(e, transaction); - } - } - - - @Deprecated - public void setPollType(PollType type, Poll ePoll) { - try { - if (type != null) { - PollTypeDAO dao = PollenModelDAOHelper - .getPollTypeDAO(transaction); - ePoll.setPollType(dao.findByName(type.name())); - } - } catch (TopiaException e) { - ContextUtil.doCatch(e, transaction); - } - } - - - @Deprecated - public void setVoteCounting(VoteCountingType type, Poll ePoll) { - try { - if (type != null) { - VoteCountingDAO dao = PollenModelDAOHelper - .getVoteCountingDAO(transaction); - ePoll.setVoteCounting(dao.findByName(type.name())); - } - } catch (TopiaException e) { - ContextUtil.doCatch(e, transaction); - } - } - - public void setVoteCounting(VoteCountingType type, Result eResult) { - try { - if (type != null) { - VoteCountingDAO dao = PollenModelDAOHelper - .getVoteCountingDAO(transaction); - eResult.setVoteCounting(dao.findByName(type.name())); - } - } catch (TopiaException e) { - ContextUtil.doCatch(e, transaction); - } - } - - public static ChoiceType getChoiceType(String type) { - return ChoiceType.valueOf(type); - } - - public static ChoiceType getChoiceType(Poll poll) { - if (poll.getChoiceType() == null) { - return null; - } - return getChoiceType(poll.getChoiceType().getName()); - } - - public static VoteCountingType getVoteCountingType(String type) { - return VoteCountingType.valueOf(type); - } - - public static VoteCountingType getVoteCountingType(Poll poll) { - if (poll.getVoteCounting() == null) { - return null; - } - return getVoteCountingType(poll.getVoteCounting().getName()); - } - - public static VoteCountingType getVoteCountingType(Result result) { - if (result.getVoteCounting() == null) { - return null; - } - return getVoteCountingType(result.getVoteCounting().getName()); - } - - public static PollType getPollType(String type) { - return PollType.valueOf(type); - } - - public static PollType getPollType(Poll poll) { - if (poll.getPollType() == null) { - return null; - } - return getPollType(poll.getPollType().getName()); - } - - public static boolean isGroupType(Poll poll) { - return "GROUP".equals(poll.getPollType().getName()); - } - -} Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/migration/PollenMigrationCallbackHandler.java =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/migration/PollenMigrationCallbackHandler.java 2010-02-23 09:39:10 UTC (rev 2877) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/migration/PollenMigrationCallbackHandler.java 2010-02-23 15:12:23 UTC (rev 2878) @@ -68,6 +68,10 @@ VersionUtil.valueOf("1.2"))) { migrate1_1To1_2(conn, dialect); } + if (VersionUtil.valueOf(dbVersion).before( + VersionUtil.valueOf("1.3"))) { + migrate1_2To1_3(conn, dialect); + } conn.commit(); result = MigrationChoice.CUSTOM_MIGRATION; } catch (Exception eee) { @@ -155,4 +159,78 @@ log.info("done " + sql); } } + + /** Migration de la version 1.2 à 1.3 */ + private void migrate1_2To1_3(Connection conn, Dialect dialect) + throws SQLException { + log.info("Migrate version 1_1 to version 1_2"); + String[] sqls = null; + + // Script de migration + if (dialect instanceof PostgreSQLDialect) { + sqls = new String[] { + // VoteCounting becomes a String field instead of a table + "alter table poll add votecounting1 varchar;", + "update poll as p set votecounting1 = (select v.name from votecounting v where v.topiaId = p.votecounting);", + "alter table poll drop column votecounting;", + "alter table poll rename votecounting1 to votecounting;", + "alter table result add votecounting1 varchar;", + "update result as r set votecounting1 = (select v.name from votecounting v where v.topiaId = r.votecounting);", + "alter table result drop column votecounting;", + "alter table result rename votecounting1 to votecounting;", + "drop table votecounting;", + // PollType becomes a String field instead of a table + "alter table poll add polltype1 varchar;", + "update poll as p set polltype1 = (select t.name from polltype t where t.topiaId = p.polltype);", + "alter table poll drop column polltype;", + "alter table poll rename polltype1 to polltype;", + "drop table polltype;", + // ChoiceType becomes a String field instead of a table + "alter table poll add choicetype1 varchar;", + "update poll as p set choicetype1 = (select t.name from choicetype t where t.topiaId = p.choicetype);", + "alter table poll drop column choicetype;", + "alter table poll rename choicetype1 to choicetype;", + "drop table choicetype;" + }; + } else if (dialect instanceof H2Dialect) { + sqls = new String[] { + // VoteCounting becomes a String field instead of a table + "alter table poll add votecounting1 varchar;", + "update poll as p set votecounting1 = (select v.name from votecounting v where v.topiaId = p.votecounting);", + "alter table poll drop column votecounting;", + "alter table poll alter column rename votecounting1 to votecounting;", + "alter table result add votecounting1 varchar;", + "update result as r set votecounting1 = (select v.name from votecounting v where v.topiaId = r.votecounting);", + "alter table result drop column votecounting;", + "alter table result alter column rename votecounting1 to votecounting;", + "drop table votecounting;", + // PollType becomes a String field instead of a table + "alter table poll add polltype1 varchar;", + "update poll as p set polltype1 = (select t.name from polltype t where t.topiaId = p.polltype);", + "alter table poll drop column polltype;", + "alter table poll alter column rename polltype1 to polltype;", + "drop table polltype;", + // ChoiceType becomes a String field instead of a table + "alter table poll add choicetype1 varchar;", + "update poll as p set choicetype1 = (select t.name from choicetype t where t.topiaId = p.choicetype);", + "alter table poll drop column choicetype;", + "alter table poll alter column rename choicetype1 to choicetype;", + "drop table choicetype;" + }; + } else { + if (log.isErrorEnabled()) { + log + .error("Migration non prise en charge pour ce type de dialect : " + + dialect); + } + } + + // Exécution de la migration + for (String sql : sqls) { + log.info("try " + sql); + PreparedStatement sta = conn.prepareStatement(sql); + sta.executeUpdate(); + log.info("done " + sql); + } + } } 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-23 09:39:10 UTC (rev 2877) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServicePollImpl.java 2010-02-23 15:12:23 UTC (rev 2878) @@ -25,6 +25,7 @@ import java.util.Set; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.chorem.pollen.business.PollenException; import org.chorem.pollen.business.converters.ConverterHelper; import org.chorem.pollen.business.converters.DataPollConverter; import org.chorem.pollen.business.dto.ChoiceDTO; @@ -33,25 +34,19 @@ import org.chorem.pollen.business.dto.PreventRuleDTO; import org.chorem.pollen.business.dto.VotingListDTO; import org.chorem.pollen.business.persistence.Choice; +import org.chorem.pollen.business.persistence.ChoiceDAO; import org.chorem.pollen.business.persistence.ChoiceImpl; -import org.chorem.pollen.business.persistence.ChoiceType; -import org.chorem.pollen.business.persistence.ChoiceTypeDAO; import org.chorem.pollen.business.persistence.PersonToList; -import org.chorem.pollen.business.persistence.PersonToListDAO; import org.chorem.pollen.business.persistence.Poll; import org.chorem.pollen.business.persistence.PollAccount; import org.chorem.pollen.business.persistence.PollAccountDAO; import org.chorem.pollen.business.persistence.PollDAO; -import org.chorem.pollen.business.persistence.PollType; -import org.chorem.pollen.business.persistence.PollTypeDAO; import org.chorem.pollen.business.persistence.PollenModelDAOHelper; import org.chorem.pollen.business.persistence.PreventRule; import org.chorem.pollen.business.persistence.PreventRuleImpl; import org.chorem.pollen.business.persistence.UserAccount; import org.chorem.pollen.business.persistence.UserAccountDAO; import org.chorem.pollen.business.persistence.Vote; -import org.chorem.pollen.business.persistence.VoteCounting; -import org.chorem.pollen.business.persistence.VoteCountingDAO; import org.chorem.pollen.business.persistence.VoteDAO; import org.chorem.pollen.business.persistence.VotingList; import org.chorem.pollen.business.persistence.VotingListImpl; @@ -85,21 +80,7 @@ @Override public String createPoll(PollDTO pollDTO) { TopiaContext transaction = null; - String topiaId = ""; - try { - if (pollDTO.getPollType() == null) { - throw new NullPointerException( - "PollType can't be null to create a Poll"); - } - if (pollDTO.getChoiceType() == null) { - throw new NullPointerException( - "ChoiceType can't be null to create a Poll"); - } - if (pollDTO.getVoteCounting() == null) { - throw new NullPointerException( - "VoteCounting can't be null to create a Poll"); - } - + try { transaction = rootContext.beginTransaction(); pollDAO = PollenModelDAOHelper.getPollDAO(transaction); @@ -108,25 +89,6 @@ // ** Create new poll ID for urls entity.setPollId(ContextUtil.createPollenUrlId()); - // FIXME-FD20100222 Change model to put name values directly in Poll - // entity - ChoiceTypeDAO choiceTypeDAO = - PollenModelDAOHelper.getChoiceTypeDAO(transaction); - ChoiceType choiceType = - choiceTypeDAO.findByName(pollDTO.getChoiceType().name()); - PollTypeDAO pollTypeDAO = - PollenModelDAOHelper.getPollTypeDAO(transaction); - PollType pollType = - pollTypeDAO.findByName(pollDTO.getPollType().name()); - VoteCountingDAO voteCountingDAO = - PollenModelDAOHelper.getVoteCountingDAO(transaction); - VoteCounting voteCounting = - voteCountingDAO.findByName(pollDTO.getVoteCounting().name()); - - entity.setChoiceType(choiceType); - entity.setPollType(pollType); - entity.setVoteCounting(voteCounting); - // ** Creator managment PollAccount creator = prepareCreator(transaction, pollDTO); entity.setCreator(creator); @@ -158,11 +120,8 @@ transaction.commitTransaction(); if (log.isDebugEnabled()) { - log.debug("creator after creation: " + entity.getCreator()); + log.debug("Entity created: " + entity); } - if (log.isDebugEnabled()) { - log.debug("Entity created: " + topiaId); - } return entity.getTopiaId(); } catch (Exception e) { @@ -267,10 +226,19 @@ Poll pollEntity = pollDAO.findByTopiaId(pollDTO.getId()); - converter.setTransaction(transaction); - converter.populatePollEntity(pollDTO, pollEntity); + ConverterHelper.convert(pollDTO, pollEntity); - converter.persistChoices(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); + choice.update(); + } + + // Les règles de notifications restent mystérieuses + // Y a t-il un besoin de suppression ? converter.persistPreventRules(pollDTO, pollEntity); pollDAO.update(pollEntity); Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceResultsImpl.java =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceResultsImpl.java 2010-02-23 09:39:10 UTC (rev 2877) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/services/ServiceResultsImpl.java 2010-02-23 15:12:23 UTC (rev 2878) @@ -25,7 +25,6 @@ import org.apache.commons.logging.LogFactory; import org.chorem.pollen.business.converters.DataResultConverter; import org.chorem.pollen.business.converters.DataVoteCountingConverter; -import org.chorem.pollen.business.converters.EnumController; import org.chorem.pollen.business.dto.ResultDTO; import org.chorem.pollen.business.dto.ResultListDTO; import org.chorem.pollen.business.dto.UserDTO; @@ -34,6 +33,7 @@ import org.chorem.pollen.business.persistence.PollenModelDAOHelper; import org.chorem.pollen.business.persistence.Result; import org.chorem.pollen.business.utils.ContextUtil; +import org.chorem.pollen.common.PollType; import org.chorem.pollen.common.VoteCountingType; import org.chorem.pollen.votecounting.dto.PollDTO; import org.chorem.pollen.votecounting.dto.PollExportDTO; @@ -120,7 +120,7 @@ ServiceVoteCounting service = new ServiceVoteCountingImpl(); VoteCountingResultDTO result = service.executeVoteCounting(dto); converter.populateResultEntities(result); - if (EnumController.isGroupType(ePoll)) { + if (PollType.isGroupType(ePoll.getPollType())) { result = service.executeGroupCounting(dto); converter.populateResultEntities(result); } @@ -132,8 +132,8 @@ // Conversion et trie des résultats List<ResultDTO> list = converter.createResultDTOs(ePoll); - VoteCountingType voteCountingType = EnumController - .getVoteCountingType(ePoll); + VoteCountingType voteCountingType = + VoteCountingType.valueOf(ePoll.getVoteCounting()); Iterator<ResultDTO> it = list.iterator(); while (it.hasNext()) { @@ -196,7 +196,7 @@ } for (Result curr : results) { - if (EnumController.getVoteCountingType(curr) == type) { + if (VoteCountingType.valueOf(curr.getVoteCounting()) == type) { return true; } } @@ -226,7 +226,7 @@ converter.populateResultEntities(result); results.add(result); - if (EnumController.isGroupType(ePoll)) { + if (PollType.isGroupType(ePoll.getPollType())) { VoteCountingResultDTO groupResult = service .executeGroupCounting(dto); converter.populateResultEntities(groupResult); Modified: trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/ContextUtil.java =================================================================== --- trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/ContextUtil.java 2010-02-23 09:39:10 UTC (rev 2877) +++ trunk/pollen-business/src/main/java/org/chorem/pollen/business/utils/ContextUtil.java 2010-02-23 15:12:23 UTC (rev 2878) @@ -25,13 +25,10 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.chorem.pollen.business.converters.ConverterHelper; -import org.chorem.pollen.business.persistence.ChoiceTypeDAO; -import org.chorem.pollen.business.persistence.PollTypeDAO; +import org.chorem.pollen.business.PollenException; import org.chorem.pollen.business.persistence.PollenModelDAOHelper; import org.chorem.pollen.business.persistence.UserAccount; import org.chorem.pollen.business.persistence.UserAccountDAO; -import org.chorem.pollen.business.persistence.VoteCountingDAO; import org.hibernate.exception.SQLGrammarException; import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaContextFactory; @@ -216,22 +213,22 @@ transaction = context.beginTransaction(); // Chargement des types de choix dans la table choiceType - ChoiceTypeDAO choiceTypeDAO = PollenModelDAOHelper - .getChoiceTypeDAO(transaction); - loadDB("choiceType", choiceTypeDAO); - transaction.commitTransaction(); +// ChoiceTypeDAO choiceTypeDAO = PollenModelDAOHelper +// .getChoiceTypeDAO(transaction); +// loadDB("choiceType", choiceTypeDAO); +// transaction.commitTransaction(); // Chargement des types de sondage dans la table pollType - PollTypeDAO pollTypeDAO = PollenModelDAOHelper - .getPollTypeDAO(transaction); - loadDB("pollType", pollTypeDAO); - transaction.commitTransaction(); +// PollTypeDAO pollTypeDAO = PollenModelDAOHelper +// .getPollTypeDAO(transaction); +// loadDB("pollType", pollTypeDAO); +// transaction.commitTransaction(); // Chargement des types de dépouillement dans la table voteCounting - VoteCountingDAO voteCountingDAO = PollenModelDAOHelper - .getVoteCountingDAO(transaction); - loadDB("voteCounting", voteCountingDAO); - transaction.commitTransaction(); +// VoteCountingDAO voteCountingDAO = PollenModelDAOHelper +// .getVoteCountingDAO(transaction); +// loadDB("voteCounting", voteCountingDAO); +// transaction.commitTransaction(); // Chargement de l'utilisateur par défaut UserAccountDAO userAccountDAO = PollenModelDAOHelper @@ -291,7 +288,7 @@ } } - public static void doCatch(Exception e, TopiaContext transaction) { + public static void doCatch(Exception e, TopiaContext transaction) throws PollenException { doCatch(e, transaction, "Échec lors du déroulement de la transaction"); } @@ -301,8 +298,9 @@ * @param eee * @param message * @param transaction la transaction courante + * @throws PollenException */ - public static void doCatch(Exception eee, TopiaContext transaction, String message) { + public static void doCatch(Exception eee, TopiaContext transaction, String message) throws PollenException { if (log.isErrorEnabled()) { log.error(message, eee); } @@ -317,6 +315,10 @@ } } } + // PollenBusinessException must be managed (catch and throw) when needed +// if (! (eee instanceof PollenBusinessException)) { + throw new PollenException(message, eee); +// } } /** Added: trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/ChoiceImpl.hbm.xml =================================================================== --- trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/ChoiceImpl.hbm.xml (rev 0) +++ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/ChoiceImpl.hbm.xml 2010-02-23 15:12:23 UTC (rev 2878) @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="org.chorem.pollen.business.persistence"> + <class name="org.chorem.pollen.business.persistence.ChoiceImpl" table="choice" node="org.chorem.pollen.business.persistence.ChoiceImpl" abstract="false" proxy="org.chorem.pollen.business.persistence.Choice" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="name" type="text" access="field" column="name" node="name"/> + <property name="description" type="text" access="field" column="description" node="description"/> + <property name="validate" type="java.lang.Boolean" access="field" column="validate" node="validate"/> + <bag name="voteVoteToChoice" inverse="true" lazy="true" cascade="all,delete-orphan" node="voteVoteToChoice" embed-xml="false"> + <key column="choice"/> + <one-to-many class="org.chorem.pollen.business.persistence.VoteToChoiceImpl" node="topiaId" embed-xml="false"/> + </bag> + <many-to-one name="poll" class="org.chorem.pollen.business.persistence.PollImpl" column="poll" node="poll/@topiaId" embed-xml="false"/> + </class> +</hibernate-mapping> Added: trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/CommentImpl.hbm.xml =================================================================== --- trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/CommentImpl.hbm.xml (rev 0) +++ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/CommentImpl.hbm.xml 2010-02-23 15:12:23 UTC (rev 2878) @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="org.chorem.pollen.business.persistence"> + <class name="org.chorem.pollen.business.persistence.CommentImpl" table="comment" node="org.chorem.pollen.business.persistence.CommentImpl" abstract="false" proxy="org.chorem.pollen.business.persistence.Comment" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="text" type="text" access="field" column="text" node="text"/> + <property name="postDate" type="java.util.Date" access="field" column="postDate" node="postDate"/> + <many-to-one name="poll" class="org.chorem.pollen.business.persistence.PollImpl" column="poll" node="poll/@topiaId" embed-xml="false"/> + <many-to-one name="pollAccount" class="org.chorem.pollen.business.persistence.PollAccountImpl" column="pollAccount" node="pollAccount/@topiaId" embed-xml="false"/> + </class> +</hibernate-mapping> Added: trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PersonListImpl.hbm.xml =================================================================== --- trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PersonListImpl.hbm.xml (rev 0) +++ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PersonListImpl.hbm.xml 2010-02-23 15:12:23 UTC (rev 2878) @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="org.chorem.pollen.business.persistence"> + <class name="org.chorem.pollen.business.persistence.PersonListImpl" table="personList" node="org.chorem.pollen.business.persistence.PersonListImpl" abstract="false" proxy="org.chorem.pollen.business.persistence.PersonList" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="name" type="text" access="field" column="name" node="name"/> + <many-to-one name="owner" class="org.chorem.pollen.business.persistence.UserAccountImpl" column="owner" node="owner/@topiaId" embed-xml="false"/> + <bag name="pollAccount" inverse="true" lazy="true" node="pollAccount" embed-xml="false"> + <key column="personList"/> + <one-to-many class="org.chorem.pollen.business.persistence.PollAccountImpl" node="topiaId" embed-xml="false"/> + </bag> + </class> +</hibernate-mapping> Added: trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PersonToListImpl.hbm.xml =================================================================== --- trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PersonToListImpl.hbm.xml (rev 0) +++ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PersonToListImpl.hbm.xml 2010-02-23 15:12:23 UTC (rev 2878) @@ -0,0 +1,13 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="org.chorem.pollen.business.persistence"> + <class name="org.chorem.pollen.business.persistence.PersonToListImpl" table="personToList" node="org.chorem.pollen.business.persistence.PersonToListImpl" abstract="false" proxy="org.chorem.pollen.business.persistence.PersonToList" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="weight" type="java.lang.Double" access="field" column="weight" node="weight"/> + <property name="hasVoted" type="java.lang.Boolean" access="field" column="hasVoted" node="hasVoted"/> + <many-to-one name="votingList" class="org.chorem.pollen.business.persistence.VotingListImpl" column="votingList" node="votingList/@topiaId" embed-xml="false" /> + <many-to-one name="pollAccount" class="org.chorem.pollen.business.persistence.PollAccountImpl" column="pollAccount" node="pollAccount/@topiaId" embed-xml="false" /> + </class> +</hibernate-mapping> Added: trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PollAccountImpl.hbm.xml =================================================================== --- trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PollAccountImpl.hbm.xml (rev 0) +++ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PollAccountImpl.hbm.xml 2010-02-23 15:12:23 UTC (rev 2878) @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="org.chorem.pollen.business.persistence"> + <class name="org.chorem.pollen.business.persistence.PollAccountImpl" table="pollAccount" node="org.chorem.pollen.business.persistence.PollAccountImpl" abstract="false" proxy="org.chorem.pollen.business.persistence.PollAccount" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="accountId" type="text" access="field" column="accountId" node="accountId"/> + <property name="votingId" type="text" access="field" column="votingId" node="votingId"/> + <property name="email" type="text" access="field" column="email" node="email"/> + <bag name="votingListPersonToList" inverse="true" lazy="true" cascade="all,delete-orphan" node="votingListPersonToList" embed-xml="false"> + <key column="pollAccount"/> + <one-to-many class="org.chorem.pollen.business.persistence.PersonToListImpl" node="topiaId" embed-xml="false"/> + </bag> + <bag name="pollsCreated" inverse="true" lazy="true" node="pollsCreated" embed-xml="false"> + <key column="creator"/> + <one-to-many class="org.chorem.pollen.business.persistence.PollImpl" node="topiaId" embed-xml="false"/> + </bag> + <bag name="comment" inverse="true" lazy="true" node="comment" embed-xml="false"> + <key column="pollAccount"/> + <one-to-many class="org.chorem.pollen.business.persistence.CommentImpl" node="topiaId" embed-xml="false"/> + </bag> + <bag name="vote" inverse="true" lazy="true" node="vote" embed-xml="false"> + <key column="pollAccount"/> + <one-to-many class="org.chorem.pollen.business.persistence.VoteImpl" node="topiaId" embed-xml="false"/> + </bag> + <many-to-one name="personList" class="org.chorem.pollen.business.persistence.PersonListImpl" column="personList" node="personList/@topiaId" embed-xml="false"/> + <many-to-one name="userAccount" class="org.chorem.pollen.business.persistence.UserAccountImpl" column="userAccount" node="userAccount/@topiaId" embed-xml="false"/> + </class> +</hibernate-mapping> Added: trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PollImpl.hbm.xml =================================================================== --- trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PollImpl.hbm.xml (rev 0) +++ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PollImpl.hbm.xml 2010-02-23 15:12:23 UTC (rev 2878) @@ -0,0 +1,51 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="org.chorem.pollen.business.persistence"> + <class name="org.chorem.pollen.business.persistence.PollImpl" table="poll" node="org.chorem.pollen.business.persistence.PollImpl" abstract="false" proxy="org.chorem.pollen.business.persistence.Poll" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="pollId" type="text" access="field" column="pollId" node="pollId"/> + <property name="title" type="text" access="field" column="title" node="title"/> + <property name="description" type="text" access="field" column="description" node="description"/> + <property name="beginChoiceDate" type="java.util.Date" access="field" column="beginChoiceDate" node="beginChoiceDate"/> + <property name="beginDate" type="java.util.Date" access="field" column="beginDate" node="beginDate"/> + <property name="endDate" type="java.util.Date" access="field" column="endDate" node="endDate"/> + <property name="maxChoiceNb" type="java.lang.Integer" access="field" column="maxChoiceNb" node="maxChoiceNb"/> + <property name="closed" type="java.lang.Boolean" access="field" column="closed" node="closed"/> + <property name="choiceAddAllowed" type="java.lang.Boolean" access="field" column="choiceAddAllowed" node="choiceAddAllowed"/> + <property name="anonymousVoteAllowed" type="java.lang.Boolean" access="field" column="anonymousVoteAllowed" node="anonymousVoteAllowed"/> + <property name="anonymous" type="java.lang.Boolean" access="field" column="anonymous" node="anonymous"/> + <property name="publicResults" type="java.lang.Boolean" access="field" column="publicResults" node="publicResults"/> + <property name="continuousResults" type="java.lang.Boolean" access="field" column="continuousResults" node="continuousResults"/> + <property name="endChoiceDate" type="java.util.Date" access="field" column="endChoiceDate" node="endChoiceDate"/> + <property name="voteCounting" type="text" access="field" column="voteCounting" node="voteCounting"/> + <property name="pollType" type="text" access="field" column="pollType" node="pollType"/> + <property name="choiceType" type="text" access="field" column="choiceType" node="choiceType"/> + <bag name="vote" inverse="true" lazy="true" cascade="all,delete-orphan" node="vote" embed-xml="false"> + <key column="poll"/> + <one-to-many class="org.chorem.pollen.business.persistence.VoteImpl" node="topiaId" embed-xml="false"/> + </bag> + <bag name="choice" inverse="true" lazy="true" cascade="all,delete-orphan" node="choice" embed-xml="false"> + <key column="poll"/> + <one-to-many class="org.chorem.pollen.business.persistence.ChoiceImpl" node="topiaId" embed-xml="false"/> + </bag> + <bag name="result" inverse="true" lazy="true" cascade="all,delete-orphan" node="result" embed-xml="false"> + <key column="poll"/> + <one-to-many class="org.chorem.pollen.business.persistence.ResultImpl" node="topiaId" embed-xml="false"/> + </bag> + <many-to-one name="creator" class="org.chorem.pollen.business.persistence.PollAccountImpl" column="creator" node="creator/@topiaId" embed-xml="false"/> + <bag name="comment" inverse="true" lazy="true" cascade="all,delete-orphan" node="comment" embed-xml="false"> + <key column="poll"/> + <one-to-many class="org.chorem.pollen.business.persistence.CommentImpl" node="topiaId" embed-xml="false"/> + </bag> + <bag name="preventRule" inverse="true" lazy="true" cascade="all,delete-orphan" node="preventRule" embed-xml="false"> + <key column="poll"/> + <one-to-many class="org.chorem.pollen.business.persistence.PreventRuleImpl" node="topiaId" embed-xml="false"/> + </bag> + <bag name="votingList" inverse="true" lazy="true" cascade="all,delete-orphan" node="votingList" embed-xml="false"> + <key column="poll"/> + <one-to-many class="org.chorem.pollen.business.persistence.VotingListImpl" node="topiaId" embed-xml="false"/> + </bag> + </class> +</hibernate-mapping> Added: trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PreventRuleImpl.hbm.xml =================================================================== --- trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PreventRuleImpl.hbm.xml (rev 0) +++ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/PreventRuleImpl.hbm.xml 2010-02-23 15:12:23 UTC (rev 2878) @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="org.chorem.pollen.business.persistence"> + <class name="org.chorem.pollen.business.persistence.PreventRuleImpl" table="preventRule" node="org.chorem.pollen.business.persistence.PreventRuleImpl" abstract="false" proxy="org.chorem.pollen.business.persistence.PreventRule" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="scope" type="text" access="field" column="scope" node="scope"/> + <property name="sensibility" type="java.lang.Integer" access="field" column="sensibility" node="sensibility"/> + <property name="repeated" type="java.lang.Boolean" access="field" column="repeated" node="repeated"/> + <property name="active" type="java.lang.Boolean" access="field" column="active" node="active"/> + <property name="oneTime" type="java.lang.Boolean" access="field" column="oneTime" node="oneTime"/> + <property name="method" type="text" access="field" column="method" node="method"/> + <many-to-one name="poll" class="org.chorem.pollen.business.persistence.PollImpl" column="poll" node="poll/@topiaId" embed-xml="false"/> + </class> +</hibernate-mapping> Added: trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/ResultImpl.hbm.xml =================================================================== --- trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/ResultImpl.hbm.xml (rev 0) +++ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/ResultImpl.hbm.xml 2010-02-23 15:12:23 UTC (rev 2878) @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="org.chorem.pollen.business.persistence"> + <class name="org.chorem.pollen.business.persistence.ResultImpl" table="result" node="org.chorem.pollen.business.persistence.ResultImpl" abstract="false" proxy="org.chorem.pollen.business.persistence.Result" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="name" type="text" access="field" column="name" node="name"/> + <property name="ResultValue" type="text" access="field" column="resultValue" node="ResultValue"/> + <property name="byGroup" type="java.lang.Boolean" access="field" column="byGroup" node="byGroup"/> + <property name="voteCounting" type="text" access="field" column="voteCounting" node="voteCounting"/> + <many-to-one name="poll" class="org.chorem.pollen.business.persistence.PollImpl" column="poll" node="poll/@topiaId" embed-xml="false"/> + </class> +</hibernate-mapping> Added: trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/UserAccountImpl.hbm.xml =================================================================== --- trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/UserAccountImpl.hbm.xml (rev 0) +++ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/UserAccountImpl.hbm.xml 2010-02-23 15:12:23 UTC (rev 2878) @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="org.chorem.pollen.business.persistence"> + <class name="org.chorem.pollen.business.persistence.UserAccountImpl" table="userAccount" node="org.chorem.pollen.business.persistence.UserAccountImpl" abstract="false" proxy="org.chorem.pollen.business.persistence.UserAccount" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="login" type="text" access="field" column="login" node="login"/> + <property name="password" type="text" access="field" column="password" node="password"/> + <property name="firstName" type="text" access="field" column="firstName" node="firstName"/> + <property name="lastName" type="text" access="field" column="lastName" node="lastName"/> + <property name="administrator" type="java.lang.Boolean" access="field" column="administrator" node="administrator"/> + <property name="language" type="text" access="field" column="language" node="language"/> + <property name="email" type="text" access="field" column="email" node="email"/> + <bag name="favoriteList" inverse="true" lazy="true" node="favoriteList" embed-xml="false"> + <key column="owner"/> + <one-to-many class="org.chorem.pollen.business.persistence.PersonListImpl" node="topiaId" embed-xml="false"/> + </bag> + <bag name="pollAccount" inverse="true" lazy="true" node="pollAccount" embed-xml="false"> + <key column="userAccount"/> + <one-to-many class="org.chorem.pollen.business.persistence.PollAccountImpl" node="topiaId" embed-xml="false"/> + </bag> + </class> +</hibernate-mapping> Added: trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/VoteImpl.hbm.xml =================================================================== --- trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/VoteImpl.hbm.xml (rev 0) +++ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/VoteImpl.hbm.xml 2010-02-23 15:12:23 UTC (rev 2878) @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="org.chorem.pollen.business.persistence"> + <class name="org.chorem.pollen.business.persistence.VoteImpl" table="vote" node="org.chorem.pollen.business.persistence.VoteImpl" abstract="false" proxy="org.chorem.pollen.business.persistence.Vote" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="weight" type="java.lang.Double" access="field" column="weight" node="weight"/> + <property name="comment" type="text" access="field" column="comment" node="comment"/> + <property name="anonymous" type="java.lang.Boolean" access="field" column="anonymous" node="anonymous"/> + <bag name="choiceVoteToChoice" inverse="true" lazy="true" cascade="all,delete-orphan" node="choiceVoteToChoice" embed-xml="false"> + <key column="vote"/> + <one-to-many class="org.chorem.pollen.business.persistence.VoteToChoiceImpl" node="topiaId" embed-xml="false"/> + </bag> + <many-to-one name="poll" class="org.chorem.pollen.business.persistence.PollImpl" column="poll" node="poll/@topiaId" embed-xml="false"/> + <many-to-one name="pollAccount" class="org.chorem.pollen.business.persistence.PollAccountImpl" column="pollAccount" node="pollAccount/@topiaId" embed-xml="false"/> + <many-to-one name="votingList" class="org.chorem.pollen.business.persistence.VotingListImpl" column="votingList" node="votingList/@topiaId" embed-xml="false"/> + </class> +</hibernate-mapping> Added: trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/VoteToChoiceImpl.hbm.xml =================================================================== --- trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/VoteToChoiceImpl.hbm.xml (rev 0) +++ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/VoteToChoiceImpl.hbm.xml 2010-02-23 15:12:23 UTC (rev 2878) @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="org.chorem.pollen.business.persistence"> + <class name="org.chorem.pollen.business.persistence.VoteToChoiceImpl" table="voteToChoice" node="org.chorem.pollen.business.persistence.VoteToChoiceImpl" abstract="false" proxy="org.chorem.pollen.business.persistence.VoteToChoice" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="voteValue" type="java.lang.Integer" access="field" column="voteValue" node="voteValue"/> + <many-to-one name="vote" class="org.chorem.pollen.business.persistence.VoteImpl" column="vote" node="vote/@topiaId" embed-xml="false" /> + <many-to-one name="choice" class="org.chorem.pollen.business.persistence.ChoiceImpl" column="choice" node="choice/@topiaId" embed-xml="false" /> + </class> +</hibernate-mapping> Added: trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/VotingListImpl.hbm.xml =================================================================== --- trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/VotingListImpl.hbm.xml (rev 0) +++ trunk/pollen-business/src/main/resources/oldmappings/pollen/1.3/org/chorem/pollen/business/persistence/VotingListImpl.hbm.xml 2010-02-23 15:12:23 UTC (rev 2878) @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> +<hibernate-mapping default-access="field" auto-import="true" package="org.chorem.pollen.business.persistence"> + <class name="org.chorem.pollen.business.persistence.VotingListImpl" table="votingList" node="org.chorem.pollen.business.persistence.VotingListImpl" abstract="false" proxy="org.chorem.pollen.business.persistence.VotingList" > + <id name="topiaId" type="string" length="255" node="@topiaId"/> + <version name="topiaVersion" type="long" node="@topiaVersion"/> + <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> + <property name="name" type="text" access="field" column="name" node="name"/> + <property name="weight" type="java.lang.Double" access="field" column="weight" node="weight"/> + <bag name="pollAccountPersonToList" inverse="true" lazy="true" cascade="all,delete-orphan" node="pollAccountPersonToList" embed-xml="false"> + <key column="votingList"/> + <one-to-many class="org.chorem.pollen.business.persistence.PersonToListImpl" node="topiaId" embed-xml="false"/> + </bag> + <many-to-one name="poll" class="org.chorem.pollen.business.persistence.PollImpl" column="poll" node="poll/@topiaId" embed-xml="false"/> + <many-to-one name="vote" class="org.chorem.pollen.business.persistence.VoteImpl" column="vote" node="vote/@topiaId" embed-xml="false"/> + </class> +</hibernate-mapping> Modified: trunk/pollen-business/src/main/xmi/pollen.zargo =================================================================== --- trunk/pollen-business/src/main/xmi/pollen.zargo 2010-02-23 09:39:10 UTC (rev 2877) +++ trunk/pollen-business/src/main/xmi/pollen.zargo 2010-02-23 15:12:23 UTC (rev 2878) @@ -1,109 +1,95 @@ -PK�V<pollen.argo}Tˎ�0��W >�LFU�a�tѪUG�v9pW�1�4�����v2$�����uMe/��B1n��e�Tu'Z�a�T[�!�FB��CSW����)�����C�晼|!���ڞ�@���(<Q�0�M�V�5�� +PK�yW<pollen.argo}Tˎ�0��W >�LFU�a�tѪUG�v9pW�1�4�����v2$�����uMe/��B1n��e�Tu'Z�a�T[�!�FB��CSW����)�����C�晼|!���ڞ�@���(<Q�0�M�V�5�� �F�9F����??��@ �|�sը�D����A/4 -z��z�`�H�-.�-M�{G�S3*<"C}II�(�i��7��rQ#e3eRy�G�$�Rcޑ�R}���y�A��h�+����aT&U`����z�N��j��8���C�qw���;8b�Z7j�J!D{���y�^v`o;(��Z��+����s����vaF87�1ۜ[f3��C�Kʛ���*����eIJ(�Z���&��b�pږ�o����>쿽�E�h8����[�K`[ڹ��Av��PK-��\��筟�� �}���s�A��^z�2�u�RȞ��pF�X������|��b��wc�N���]�>�5������u/tB�L��O�������̎ۖ�<�PKptB�PK�V<pollen_DC_Pollen.pgml�]mo�F���_�k\�(�pH����, -�ݠM,��,ю�ʢ!�Isq�R29�9�9!�E��M��3g��y�������|�7�e�~s�^z�x=O������?�����^~��������?>��<��~��o��<�H�x��-.���v�Y>�wK6�/g���_���X��7�����l���{��<�wO�������?�t��m�o���ߔ��4�ȟN���n��^!ߑ ��݅����y�<�u����&�k={��\�����d����]����$O����_�{�W���w���"��� �B�/���q����r��]�o�f�m��vo�d��1�cy���<ƛY�k���w���v����..;�{?m�7��tsM�w�[�V|�K_ϓU�ys���r�?����'/��p��j6�O����ǯ7�ϳ]|���җ��m��n��_��̗�O��8��_~}s��}���r���/����|����v�=�;HOV�`��啿!?�d���Yd#zY bhH{��-����ҷTM(������\]tͲC_������+p0�*#@�(� �d�9�����~f����8��0���]�9����>�x����L�c2I�~�'wɚ��?������l�����|[���d�P����v��)�����<mw˻�|��07�o��_�e��!��w����{������{=;�l7�����Lh`�3����%�XCH�8(Ck�L?����i�+��x8r���{��v�<<�6���n�G���a�)7�)�;��#un�cd��p�ps)�)?����ǻ7l�m����s1��&ٜ�LF��2���C�9�%�2H�Q���Y-���F������\����q[�*'�ꖣ���?�-Gk�����-�w���@�\�M�\�q����uQM_5��y� -���S|���r�'?.&�&�qdz�y7��;������Ɏ#�lZv��v�T�1���l��.p�3�q�R1J_�N��� -Cx�yKmC#�ń!�=��r�;��{�)MI���5qlek�bM��α����I&dUI�Ӛ41"x��)@���&�M��9�9�O�Qk��!I+;�b%��I�5�߷��@C�5������#�)7������8Ffn�(���:�&&.������c��!ۚX�,|��Y��9U�����@j����t�S�*6]�M7]��*�UL��`�i��Z��4b2�R��Y���P?ζ�/��PC�"&��bD{���r�����4����x�q���լ)ڬmH!�ވv��l�\/�ߛ~�sȯ�d�ֵ�5�����$�����쾁��5hS��ǀ��H -hX���h�Р��bB�\ -��_s7��xp������ -�D}ٖp�?�G�lKgg`k�ɀ�F3ދ�E��X�ff d -n3�̠"��C�e`d��0�22�5�\�eH�$�C�#�{(#M���0��F��B�=�6�1�ӝ[[z*Vb�s��ֹu��}�a��AZ� -5�S���8���F0�d"��XM���6��P�D��/� -G�L��}�_Tm�t9n��-��V��9*�(ɤ��G�L3L�������~�3D�9�]*_X \(@c@�E���!-xRs�}=��u��C2�o�����S���o�G8�<��Zęq@CE"�M��X1�h�:�:^/�ꁆ���c ��?�N�[����]|oj���30�<�@3��d/c��iE�3��h�{�3ӾZ,�V��K3�e�Y� -9G�{ -�l���>$O�?�]|���%���_�� ���%c�����3��n���o�V�F�돚J�gc�n����������돜,�l8r2�e��8kS\p)��FVB{.��<=�%�J��<��E�f��E�V�R�GT�%J�$d�Ee[:{����"����蛩�%J��`�!�$�v��B��0���P�u���qM�)e�H���\Վ��.dQ~Zn����n�K��|B�`�<\[Qw�����Cd��D�vН�-˥� -�jT�#ѧW�b��B�f�� E�u�P����$�P�@�h���ʼnۭg9.U�-]��ۭ|�6Dž(9.�5��r�q�^�k�:�d�(r��/2�E�(�|ɞ=Uc�'�s�1����8C������� /c��]=FȲtJ��=�)ڞ�T��R��jW��&}�j��ch�u���:�ch�À�#�z�Q����1T��0��p$}�c>ěm���c���Ϊs��k�Hk���f�K=�E�IW��(Fz+o1�c���V -{���1(:rp� -D�a�5GUۍ���Z=�� -Q'��cjU�Q �;ٵ�ޡ�K�n��21��T�{���)�q~m���͎��r�r��;�G����ǿ�K���=�ӻ���� -H�J�&_��l��/���������R -��������8�q�o���{��#7��x^�vɗu�����+�I����9��ww�x?`Jp�5�M+�@���n��?����Z� �M�o�;0� ���n��Z��]كu����W�X�M�}����q�Ž#ӯ_D#�5�(_�t$$��G=Lg��;���������rS�ͽr��7S>�r���SA��ʼn@�� -�o��܋ �ϖNO߬�����x���C���E$Z,�>d�n -��T �I������b�$?-0�l�g�1���Jƣ �؎��v�tH�����Җc@L�:'5��\u�C@�C@Lj:'��d�.���}�.��lw�{1�1>�5�i�պ_kK�f@ǹ�G�;t~�v����-�C~}X���8?*�~��vsiaOp�i�0w��j���K�+�ӂNwZς>;-]��;�|�6�À>s�-�)����2��\fhb���l�s��gh5W�;���C�d~�o��W�U���L&����������Ǟ�hfS&�6۱L\�d�X&��+��Q+q=�e����l�̠�̦�����z3�w�� -؎b��b6���מ+��;�ii��f�z覞u��p��Ԓ��(~Y��x]��C����6���ё��]��0��:K�Z��։F�,����֯�m�:���2�w<�>E��kH�]%x]��4��+�*�{���>��j��4��yϐ܅��;�}e�M�]�Ve��dP�܈��" -�]F�d��O�i3,�M#�ZL�jz�`N��E���PA&���9�&���F�R�Zd-AM1 {)j%��t�Z����f d -n$�EJ�"=��x��z��ijQ)MMv%Anծ��j�V��f��t����$<x9L�rm��DJ��(�̐���Y��D��o)k�e���*�U��+�c����Z;Њ(:l8 -r��yk*����qpFj���Y�Z�K���+ߣM^���5�{*τ:1�J�����@��V!���s�>ͲYMS�js��RN��Cu{YU�F��>��Bp�$*���5'�%�(��`':}y��� -�܀}�*�_�&�6R�Ys����{1 X6�u��MIH�hFpf�q�fx6�L�=+ܯS"!B%��C*�����q��"dM%�M����qK�L�*z�dS��� -�0{$=��0c��?ʄ����/ꄒ3 � 3�3�L�ϋ�YQ�r�J���);�8�)���ŵ%Y��ָ��� -�8�a�]���,J� -G�d!��-�!�ԪF��q^p�q:���;NV ��A-��ץH�=�0v�WY�Z��<��G\c*���!k��F5��D4�̌a�c��;��C/ʃ6N�-��@gh!��3���[�jz�b]j~!\��`���nԦj"�lr�)]d�[]�u��K����'��l�<0(NB�zU�լ|��4�.�����f�h���{�ar�]M������r&®���X��+R��(����� -��1�+ -��${�qd/��l����=��������@�����^�E�N��H��3<�##�k���q��!T�� -��J-ď���^��Dm\)]o�&mΨfi����l -'s���=.��n%u�GT�R�*GV������ڮ�D�fT�d��S\p�S���LJ2GR���L����&�cJ�)]�!Ւ+��!ժ+�{JׇM�����J;�YS�9�у��W�i�ɵ�b�N���\ �n�9�.?Q��T��:�t9�RL���֥[̓�,ϩ��C�a�E��>�����tI��A�g�~��L��ݜ���.G��V�E�ҥ�V�T=v�O_��9?��tQ5�KF�@ -PF��P�k~�_�8�����}��G�����XӜ!��qVYg����:���{�g���sŜk�����п�����ˇFhz�#���=�t܇x�)Y����鸴��kAm1��Y'wS�~Z��R�`�9��_fz��#�Et;cs~�#aһ����\�����.���f����u.7#,M�9���[��e�����u)�W��R{ղ�4�RJ�)���P�q�����J�~IJ��HQ�^�F�.���y>&�39�V����J�z�x��t=_��e��1�pT����z~�tt��w����Δ[�ut߮���kސ����+{��6�Z�4�ʽ�5�k^�^�X�������QH_��9g�c�z�a]�^#�K���]�Aa(v��悭rh����qh����D�X�\O,%H�Di>�"Q���M������}R꽘�w -�Y?��O��d��i�s���*|�[BUP�hi�3.��r�3���e�=�PX�d���<f�]�E����u,����X(b�Hz �����X�A����X%��H�����!�UZ�*�+Reލ����>[�n��E��� ��3��:M��&T��AZ��óϔJv�s�*�+T������~��*e�!��.���n�[�Ī���*}T�7d<�#�����r���^��|dP=���zc�V��|�i�0�6P�=�}�S�E��:Y}H��GNU���"� -�E�0��Z�/���F:��*�L��$��E�;R�\!t��N��,�U�;���K�l���Y�~�m\Bg[�b�ok���%t�sN�_��-��?' -���yg���'�a��R�]@3t=���b -Y@�U4 �X��r���M��?����E���)<��LM"��(�ˇ�'۴�h_5���M����Y�}�˪���91r���:�~�ώ�ez�h�U����Y�ɿ��3֙v�,�k����.Ʀ�/r��Ѩ�/oL�ЅE:�e���BJ�0=p[Xx���,P�Ho��i�aW�fݰ��+:w��*���9�x��\C��e�t�c�c:g#�)j���\3� -Z�[�s��9��[�z�=��<�$Bfs��c��iج�x�],������^L�}��4猰�Zt43��i�J0*�����h��+�yA� �T������T��8z��{H���j=��@v�F�C�R�I�����v�u��8��&e?��V�H��~�����*8�v�s�3����qŻ����"Z��R|����D��Az��]Zy=��`���t�q�G�n����۷��� -q�)]:� -��6�v����z�U����p�ͮ3$q�Iݮ�jCL�O�4��ϐ&5H�ݮ�Hp���S��(�����n�@�� n�f��#�8��4ċ����NwA��Nr�DͩAԴ�ϛQ/���M��Ȃ�:lz�A�|���o;��?��uYp�1jj����)v=jJՃnJ��((�JɁ=6jn�BP���0�M��o�&؞��m0C���1F�4���w�VH��C�E�;]�s��|�a۽�0��,YNM<�v=�I�x���P6� g5�I����<��l�$�hfم ����B��L���$O\i�����43���A�ܺqo��W�Д�S�A��>n�c�+�����Q\���-��Lb9��m5 -x�)�Ly�����[�o�̪�F*[�Un5b��-��́���b1�SŬ�r����\�!���,i,'eY&�MQ�<�% -P�(��q�'[*���� -P��@a;�T1��*@kU�"��[�Ph�*��I�!ԣ~T��T� -0e��C�� -�'~�~G� �3h��`W�[kZ� @�[ȹ���~P�C��ը<�9+�-�=�&�C���4�B��V�&hfVm5���zM f��@�:E�M��\��@�Ql;��wt�ϳ��[���yH!�K�Y/��>ž֍���������<fa����>�^�}���I<[ާ���O��[���{��i90G��~ާ���O������]����R��Mi��~S~��7�����=m��]u�,ѣ�~���fn� -��]u�.� -��]��KM@G^�Gh�� 6��]" `�m@�:��%����,�������v�箋��E>G��s���ٞ�� -N���\0l6w -���@���#�k��u2�����'s�H��o���&��qEo�0��?�r32w�Lbd�X�6��Z6W�mH�ܝG|~:wcpf�O��G��gۍ���F��B��g���霻��1��x�}:����M��t�����YJa:��gu���Ҧs��%������*ju,������G���$xrP���L��ZJ٭��-��Zv�Z/���L��j���Zϧc��٪�"M����j=�V��z�j�B{׆CW\[kDQm�G�ȵ����h(�z�j4, *�b^���V�ɀ�Z]�G�[�j��KW��V+ߢ�Ջjk��p��;C�^���;�(�^�)��v4�_��]E��%�Q8\����j��`��R��w�?�P��p��1˪��"��kozs�I�����J6Yb�)O�9���w�j��O�����pq~�}��^�k�π�}ڰ�N~g�б�F!���Y���l -Ń[��9��%>�z��YU�u>:��H��1��ua�͡��9���N�!��L�q�3PA�>�C}'r6����<�"fU9���D����)��iN�h���4X�E<��+�����6�!H��9@5�ѹ��yz�����U����G�z4D�h�;��&=�z�5�N�z4L�h�;��&=�z�5�M��ѡ�̫(�#�����x��PճѼN�+���eSg�v?:���!#͋:�@�H���u�GF�u�q����5\�4�|�4/��k@����h^�9y�yW���h�q}�p�����]u��#ͻ�"NKG��p -��<:Ҽ�."�t�y -��6ͣ�&����V,J�܌�Y�|t�Ei��i�&���Uf�5%z}�day����^�f -���^O� �q -���B:���h�}���yHg\�D���H�)[�3�(� z��iw- -��ߺX]~��PK�[��PK �V<pollen.todo�����Q(K-*���S�UP2�3PRH�K�O��K ����Z()��q�(��;�D�*���+G���*(�8z)%)J -@% ���,.2���E���9e�)�E�%��� Y,B3PK4�[-m�PK �V<pollen_profile.profile�����Q(K-*���S�UP2�3PRH�K�O��K ����Z()��qq��e��q��ÙPK7Rp:BPK �V< -pollen.xmi�]��6���(�����1h��-{Q� �&�ݯ�D9��Y�&��J��cY�,r� %��mb���!�;�s��?�=�g�0:�a0�u� .������]���_�s�a���?����;=��Bs�!�l���{�I���n�6�<�ɗ��O���C��C�-�g�4�GU{��z�e& ������,���W\���^���� 1��V�o�C�I�e�SZ~:�!|�� -Ap����_�'M.�M��/� -�Q��������������,��������@�}.�sQ� �c�������O�A������{����?f�_� ���W��f4=�����������������Gq������M/,�9�A����I�����n:3sM�� -c.��(Hs]�mG���(BO�M�y����Q�~V���¾���U����<����t|�w�A��{`��7�a\��w��^^���1��s��2c��l�0��"�t����4��� -bܦ�]�%۔<�Q�DC��1j����gՃ|�薈�bp&4�P������%��C��kz~�g���A�|�����]���ERJ�_��]�I�F��%��t_����'����T��]��#Ρ' �k$��SmSq<�eu=��BNQ��F�iq����N���C��ɞr`�/,�;��v�7�ȥ�z�G�:O�"��`� ���6e�u��7��C�ݯ�Y -�t� &������駇����m��FlI?tb��9uaBa�%����_.�?_7��r����&k*]O�`8���,�� -��R��Iz�Ä�0Zxħ���eG�}�ћ`� �P3��b���d���t\�x�_��N�i�� �;� ��M���+v��<�`��&�����9r����$<��w���>� ���Q��Es���4��!j���j���G���.Q�?���DoJ_�0;��K+�B�;�A�[#���dV����t�FM����tm5ы$I5���&J/Uc�fTՀ*��]aw��Wu�߅G'����0���5�0`q��0:�d�5m�9�j� -�P<�t����OL��kx,]��x�!�?8�V=���{��U��,ƭZB���x�W��؍��X���g�dF[�*�|��1����ǘ��ј����@�ڛ\�x�-�������<��T��&БJ�ȅы�>�3tQ�v��.o F�� -�J�-2�==[5E�ց�-O��EqY��0zvs���� rs*Q�Q�t8�[�d�S���=�X��:I�C�GOH��8RT��������J"S�L�TOV�� m}�@�R)���>��ԦF�h��e��B���7�w_ t� ���H��/#�L�ps�-���9Z+ͷ�Wp�+�U�K��D��Cڣ��`L��[o�Ë`qi��H��<r�g��# -��Z-]npFwe7E�4O4=ɵM�i�WCL$wx�t��4��y��H��88Vt�}������^�BҴ�u�+T�4UGCbŲW�8�/�����h�Y,:7yqxJ��K�>�B�M^a�� -�2�}T��TO?&@WSL�"�L�Hޔ�t75�V�=��#Ev��)h��9��!<��89E`A�cĹH��䰕��0@��>���-$�B��W�4~��Բ��F�++�����HG��WM���v�ōHF�@�+i#R�HWR0s=�]��A��L��Y��x�jgUyQ$A��YZFh�8�)��Q�V)Z}�"9��ʩ�X�0� -��F�y��p�!)_�,8BJ#�9R�0�bX�� -L���Ql�&NHXj -�٘>�;"80�5dd�[� ���")O�Lq$���uɑ�R$��IRg�%�W�E� -,�s-�um.�$�^V�L4M rַ�����|O�87�&R��k���)COqT'[��*�c ������s���Q}3�9�H'b�px����}�:�@�jݑ��R�5bڝb��a���8D�p(t`Md��4��9�S -`�"����I �+t��xC�(ۢ-:JB�,���Ƞ#�.�A| -O��1cL@hN$w$:��Rׇ�U�!ğG�p6��I�RjH�"��}��'[?)��������$�̘��C��h��kx,]QȈ����<�ݝ����=?:�'�@�����c�ɅS��|��7�yJ��*Od)t'4>X0�e�.^d����'��8�>�^ج� -J=ȍ�@��L���W�][�2�}�߫.�N`�u�n�A���q(t�&�|5 �b�l6b~�Y���>�K��h�wq�LbO�J�I9f���L�cc����f{�;�k��T(w��]����b���o՞���B��V�O�,~rT�0JЀ)]�V�l��$T1tIґ�pr���+ -O�8���.}#�wY����cf�I��~��sb��q���Uj�ƛe��@���e7&�a -j��*���)ZOWb3��j�D��#� E�R*\�>,�A�p9�ҟή %A�p<x�r�as�@t�lB�MED�:ې$4���<$�� '$�u�;]p�4�mY���m��[��E�������]�ޜF�P���}\a��S>s&��pzAcY��c�[��t!pl'�[�� -� e�'I�-y��!7�:䅻����n -Xs"RU�f[��^��Ϟh={"�\1jϝ�|�09:P�����B�dE�P[/5�c�p�I�@�R�ȫ�:Lj�\xt"���oXl�=w���#��۳F�x�䦱H���h:�����>��e�����w�n�@�� (�b���77&}�?�:`7"��n� -Dx0����}V�%��W�-t�h��VDž�˱���}�%���-t�L֑��r���-���t����݅�ѹ���1� -0tt:���.���S�K'��P�1����:�(���N�6���t���.����ǂ���xK�m�KJP�0",��[����H�ǎ�zP*ҙk� .�.�WpO�y�g�1�<ʠ�aD�@$*��d~�ۘ��]A@�*��A�H��k��lfU�]*.R*����%�8���:��B�� �$r8(t\I�*���A�]M�l$͢T{���A��D) �� -D���$�@~�P�0:0H��"P -���f%�[�ltBsm�+�o�<�f@��>�^�+^:�W@S�e���/ɫ0:�����_��B -kc�U{O+�t����ڜ@~Gk�k�+��q.�#Y���"���/�ܞ#�:|J�Z�E>�s-�r-�rS�\/��4E���M���os>�A��!*�b� -�B�G�����!���@�LUC���?9���7��u����i�K�S�:,����ϛ� -�C�x�5Ir��,qǒ�X�$ˊ#Rͺ�� �:������&p[�K�9O��$Z�G���R��Զ�>��\��.ms -���!g`������ j��+w`���f��_LI5ǜI��@' ��0���J�a�P=�Î�<��CR�.6�0 ���h>�͢M�+(�s,�8T�KJm*u�R��:�]�%�sCoR��V㈆��jo+4į� �>%����yAgWvS#*���$�6���Z�i��D�Hٜ?\{����h�߈@��:h4�f�4l��F}c"�%O[E#�g�"�ڙVr2]���~��w�}oDA^u]��������x�p D6+�6mT�����sg�r���#�RB"�%u � -$��+c���#�J�L���Ǐ��ܜnvU�oJ3�W�HÂ)R�ȇ����~��^mC�8�E������|tkl%5-� -m;s��^�[�>�C�TT�%h�y�'� -�����r��7���V� -�-l�jj�D���+���A�Nܝ�Ny��櫦��:3o��i��H�2C!-ȺOiɥOy�5���G�QIHMȆ���렳k#�y}\~ A0 dļg1����D¢2��\��K28.*�,K���lǶUS�PF�(�o���]ߜ@^���a���nf�|β�I/�Б������ ��0p¦!�y��]�d=_C*iZ�:�| -����� -w�e�>�N�y�6��vpQ*Zz�����|��͖��1��͖�<�ګe�UX[W���I̥6�1h�x�N�Bi-6,�R��7��,؆+�g�ΔM�uP��V2���Ne!��+h+d)N����j1j�'��j�b6QŬ�RT#R̈6a�&��Y��UȰ����U%[�l�ɨdkd?�hg����@��0����d���z�(aЎ����(1Ye�&�9�T&�| -�{��Jr����.�G!c�s�����o�/t�QȨ���=�4��$j��H��$kt�.͇N_��8�q�KNlIdR��6�.pbÃ[�J�(A{� ��?C�q��Ӡb"�]]vm�F��ٔWƚ����e-�O�-^��i��\���r�����X�(\��*F�n�#��x�]���G�jeS�3%^.<�[<���ꉉDjk����o8�����ƑD<�.R�������^�� -�-��PJ4N-P.���lj��8��z�zُ{���2��^�p���Y>��7;p}^a� �i h��t����R��(d����&�W,x�W����yR�����Dt���4��}I{mwn� 8��3��d��F�]�0O�H��M"�����̀68�s*K��y: -��F/��'eh��67��v����ը[�M�sSX04ہ*���z�A��F���5Pz���m�������qo�ӄ��Ma�������&ӂhy��^0�Z5�Y3Q����3�u�߃�.F^y�����3�&��¥�m�71��:9/Va�� h=�����o�|o�#�9џ㨋k�fH���Vx��'Đrd�5C~b���i�r��,����ɕޤS��'�H��e��������z�Et��U]��(�x��7WE�*���^\ -��n`{��[��v�;���H�U�gv�;����n�i�{�T���*3D3t ��~>����:�h�M����;�R�߱���D;���y�����G�è�^vv8T�w�-���BK����п�,*�gѢ��� -�����bs��W]Hl*ʎu;4�oɦ�X_�:�}kFW�E�沮�����gme�UU��W,�7���r� -�Ɍʎ�N�Vw/��½L?��" -�۲�7o�p��S��ʾ.N7�@��`VۖU�mK�E[m��:���S��;��_�9<�����G�Y�^K�b���.?Q�����i0�,�Q��iP^,�Q��% T�o�*�h�Z�>SK�.0 -�����)�BxH�c]h� -��t_�R�?� -�YA�~���##K���Ϥ�}�##�-� -��r�mJ+�Qaz(��]ܦ�r�mJ'�T*D��艥�Q�9k��]4*�Oc��b�p^n���[��`5�ä��g��ZQ�>*<LV�^���k2�b-�ؼKV70Sk�������岼�K)��p�,�T�VT���!��cߊ -�cŪձ��[�f�[��B�M�,*�ʭ�5p(e������oC�N�'��#� {D�x$4��AD�+Mj�@��T%�A�U���*pi�Ħ�-�ׅ/�J��5����pi�D��%��B�[J*�Vu�u[�Q�QP��"K�v�u��K%��dwh�K%a�dw܍K�Xת)AH���V���JbB1�V�8�ƥ���m\���I��]m�z�Q &T6ńJ���(���[�,ON%.l�bp���o�Oxw�8TP�Cxw�p�@oޡr�0(W�ؽ*����� -J���h�Aơ��6�zw�g8TP�Cxwqd8TPG�Cxw�<8T���z>/��i�IH�d�0�E_�-�)sI~`iKBr�Z2���������|XA@��&�����Q�$$w �����kL�Ԧ�F��CW�$�y��)��3[�ˑ�>{ZF��8��gO�h��F��C{�Hhn��A��C� $��ͼ�߿�gP�3����8���dm`ݬ��zk -��l�U�1��3m�2�g�S��)��Ĕf��4�pQ�� �ohb0�U�W�@:�LE�ޣ(i��ɪb��D�՛,�����lO�qj4���[������ݿ?��p� �A������/PK'w_)�r2PK�V<ptB�pollen.argoPK�V<�[��Gpollen_DC_Pollen.pgmlPK �V<4�[-m��pollen.todoPK �V<7Rp:B� pollen_profile.profilePK �V<'w_)�r2 - !pollen.xmiPK1�9 \ No newline at end of file +z��z�`�H�-.�-M�{G�S3*<"C}II�(�i��7��rQ#e3eRy�G�$�Rcޑ�R}���y�A��h�+����aT&U`����z�N��j��8���C�qw���;8b�Z7j�J!D{���y�^v`o;(��Z��+����s����vaF87�1ۜ[f3��C�Kʛ���*����eIJ(�Z���&��b�pږ�o����>쿽�E�h8����[�K`[ڹ��Av��PK-��\��筟�� �}���s�A��^z�2�u�RȞ��pF�X������|��b��wc�N���]�>�5������u/tB�L��O�������̎ۖ�<�PKptB�PK�yW<pollen_DC_Pollen.pgml�]k��6���_�۸�O��!JJffя�E�$;H&��Bm�=���{&sq��d�d��lZf$y�dۖ��ê��b��_�x\N>'��"]��@W��$YM��b5s��������o�y�_w�����&Os~ï���㻟&�W���_�0K6���i�[��_��y��/���-��:~��l��b���v�<�>������o?�x��7���5�w���e^"��y�2������;��D��C��e�y�w^�u㱋o&�k?&o.�n��!].���7o������i�����{���?�K���a���PL_M��a�_O������~��y������6Y'���S��"����>}J�q�k7/�oO�������y���.��O����š8�����%�����t���\|���&�|���ꥻw��/�������~Z/>��d�ӷ�wﭓ�6^͗IeB��)���&�ˏ_�\pl_~���m?����O�b�i��S|�02��^�����5�|��hDW%"�����_[��-�Jل�U��ޔ˓��vh����_R�~��&�2T��d�)@�P1��|O�z���U#.�f��������q��80��qx&�L����!]���e:/�]l��b��"�m����r&��}�f���|��7���b��6Yq�x���_���������O����f��Xro�� �_�" ��@u0��؎%j�!�A��!�5�͞���i����@�"9,���x�ݦ�O�z���>��(܇9�;�<�S�9��8Ffaw�0�њ�8*���y��q��ܦb��=��l��Qc2 +�o�k^?���m*O�0%���b�ra��n;(tI.Gs��8�.Gٻ�?T���̢:�:����rt .�MG[���Su9�"�+�d�T3������a[�e�#?�&�M~�g5��n�wIpGшv���t�n6m;�m;$2����P�N��D���3ų���Q�Q��@�7*Fe"�(�� +M��W�8�@~�="�&V��S�41�+�ı��'�5E'[�*41dQLȪ&V%Nkb��H%��M2741hb���q `�&�ZC�&V&�L��I�5��6��@C�5�,��K�#ȩ0�����8Ffa�Ѡ�:�&V�a:����c��!ۚX�,|��Y���,�����T ��gu�ީb +��棭���ѪbP�$���pq��4�W-Vf +1�ɾ�#��O�f�%]*bP�D�C�]�j���z����i���;� ���2n�6k@R��-����v<{\������4]&��sY�?Z�$����9����m +В1���}DB +tw �����^MhVK�Q��_���g�/�T>��ъ-Q_�%\��/��Q������Z:C0 �ٌ��Ţ��,e3*f d +n$3��̠U>�C�e`=��\F�\��2�@�� ��=�����r�n#�m!%/��� +n]�X�a���cd�<iQН����èM�0 +5��SW�b���v3;2�{�#t�'&0$6����8��t���/T�MGK��ߢ�^`){!��`��(�<q�`Za��셈��d�+�D9Ҝ�. +�/,%.$�1 �":"�!]���x�z�) �R(�PJ�O����t1M��#�c���q�GP�Y�Po�u���9G#�9��j��P4�n&P�y�H?������V�d�����30�<�@s���t��s��jE��+��h�;�sӾ�ͮ���K;�E�Y�J9�{�{�JW_�����69z�ʒ�g�G��C�o���1���h�9�O����I6��m+��KM�3��V�1��߹X=s#?w���E���K�w���/8�~�xP05�����y�m�Z��� +ү;l���x��~���B2D��g@ ��C����s%ލ%s�V2g�ʩ����s_1�� �y�/���"g+�H�b�#Z��2cYL,�G�nK'��#�*�D�X1w��4���T1W1� Sp�b�Hsa Ð�� +tc�\���b��*�@R.�ԁ��s���~\l�{��ݺ�<����#�NE���x�T6'F8�Y��.��.�!}���͂0�"��ӕ�W��Us;B{w�n���M,��E��܍G(�t���̩�-����V�E[3G��9�dz�ZX�z�2ޤK��9�!�ɵ��!Zn�����c�����{n+=���k������,�1,ۀ���qRw��JնSz��1L��*Ej�Z����1ԮS1 ���Z��C��C\�xF=�6�1���J��Z��=�I;�@�w=�C�ޤ�&=��@��1k��1�G����Q��6�p��c�P��l6T�j��c=��@�a�.�a�[�ÀM���@���èr7f���6�1���k7�zL�J@5*�a+��T�2:� ɛM:]� �so�o:f1ίM����C���?T< +��q[��=w���~NgI�L����d�����2���ȧm^"|8��k��+�K5������|�I��_���w��#7�|y�����*YۛZ�{�7�W}�I���&�XW � +�Mp�@����v��_����F� �M�o�;p���W�ֻ��z�J��v�9�֧����th��c����(�g2��9@42���IVG�B¯=�a:3O�s�������.S�ͽ +��7g���UWM��+ +�+Y��n��&twV}��f�X�]"|yI��p����"�fS��w�e�u*ĄV������byHo�Z`^�bO�b;YG�:|�O1��em�N=�&C[�ΘbrK�����b��1�:Ą&�����\9��=��է��0�],_M|��q�j��<�u�E3��e-"�����F�xH6�[��z?�À�~�n1N�0��+��=��ӂaz�ܺ���@��ଞֳ���Ӳ�h�i�[�9��la,�=��M+�03��ݙ�s�V�h]Y�;��--s�X����l���"Ҙ�d�&���� }��lf�oV��m��]�=�s�X��d�\&��U��P_Q+q=�e>���d�̠�̶��k��z3�w����b��b��NkO����ô?���}3p=� �ΐw��p������(Y��x]���C���Ph��yjrGt�vW���f����䮳��\�`�h��һ�D���M4Bg�^Wf�Nc�{�/eF��wW �9�`ZS��p�콛��'�ICM��p1����ur��/��w����4�V.7bwe�Hv�S:���yA��yY��|/&q�<�bN��E��ЊLJmWNr��YH�hO^�Y+P��^�Z-�8]�I%jU3 +�!�u�"�H*R�� �8����Y����,S�jejb( +�P�����Z|L��Dv��vQ��p�0u(�uUFIkR��H3CQN�0�]!MԷ���4ӡ*�A�x�{���"�Uk{ZE{�#� N�[�iET��g.G�t��U�).���W�G[�I�kr�d� u6��5�Ά Ԥj� +v����g�)N}k���j5UV��UUUll��ɟ.W�D�\���p�]Տ���v����@X��U��ҿ��Y�l+��rv��XY轚,?����)�$!�����ԓ�8�!S����H�PM%�V�Y��θ�#�|�L���&�����)w\&�}�DS��� +�0Ɓ�q@�n>ʄ9����_� �`�'�H���2!_/fkE�B�A�*�!.�l�f��B\W�E�jC��ӛ��ϸ�.G�4��4ӡ�,*�Ds��D�1���<������q�J(y��<�"a>�ax�����8�x�k�#n��dP +w�[/s0��\�@=�8ffs����Vq�x�:ȡ�ʃ6V���%@'h!��W������XW�_ +W�0X����RM��-�?���a�+�N�����ju���4� ' o}W�ժ|��4�N��|\��������Z߄Ɂw�0�L��< ��a"�z*X��]Q�Ϫ;x�Y"���g&{�F�.ɞw�+n2�2x�gо�>�##�{h0=�##�k; �����@c�'#{d${m'�6�#��� ��e�LA�P�������S\O�ƕ��fl���,����,a����\����ky����GT�Z�*GV���\�ʺ����Q-����� w��K>�� e�C�L���.��j&����&�cI�%]�C��PI�Tˡ��%]��g��/�K�9��1�y��9{?-��JL�S�� T��6ȝs�'��1�L�-�U�I�8ٺv�yQ��s�sc���[dm���ߤ�.������%]�;�Z�o�t����-��.��j�����m,��L��հ���5]"�j�b��aP'+��_,9�����<Y7#N��C�h�Ӝ#��1V���p~��;���v�YqN�5�c +i��п��������Vhz�#3˖�(��1�~Jg�S�����q-��㖞ut7E�g;�X&�V0�?뗃�-����l��l�B$C�0��r�_��+�5��2�"w�+�'�^N�����r�q�����KRz��j���SJ�%)��0�s�x����c�t�&�a�ܧ�#}�ҳ�<��39�V��<�J��z�D��t=_�����1�pT����z~�tt��w1 +]�@Eg�-�:�oWG���7d_5t�?���LCW�����<��A�@��e{��%��q��g�~��� ��6k~M#����P#( +�nC��B����n~�|�84�����v�-,e��$E��?��(�/'a�]D-����}R꽚�w +�y?��O��d���i�S���.c�[BUP�h��g\�3+��"�ZIJ2ەPX�Dj��<d�]�I��븺�P6GĪ@�(E�8��76J�bU�N� +jb�J"��9�A�ҊT�]�*�n$ ���\��at�l�HB��H,���vւϠoBUm��P,�}&�dn1��B���P��7��&�U��!��.�o�y��gb��ߐ���!�s>r����.�*���꜏j����Z�'��k��Nˆ嵁T�)�����(�ƫt��1}�x� +ǿ*��.:aK#8����,S7ҩjN�˪�����Y���� +���tZw�8dj���|�f.��]t��gq���q �m�Ӊ��5"n��K�l�� +��֭[�w�N�0͞y'���'�a��Z�]B3t=���d +yB�)�j���X>�'^�-���Y�X��%�A�&�d�h�ۇˇ�mڇu�OM�p��cH_�,�k�>��i�^��9���`-@�9ώ�ez�h�U����Y�ɿk�3֙v�,�����4��M�_�:��Q;:^ޚ�UR霗ۃ��Fa��0��@�([�wH����|�]7l����<���dt�#�3:��f�:��������~����3>�s�����Ǽ�|�:���^c�u6�Y!�9D���:�z��z]�ތ.�t�����^M�c���:j��μoJ�����Q�G�W� `r)�)*J������!X��G�������Kq[�W���pВln�{��!4��0h��c���z�ǿ֤�G�}r����_� +籺�C��9����>�a�Jp�;�!�qx̂[u�T�e��8zU�]�a:T=0��n1���1�۟#w6��l��?G��Mj�!:��r��b��ֳ=JgS�yP:����G��`�C�esb~��Y~4� +�x@Б5DzG�^z��N��C��>�;���o�>�9ھm��bu��g�~n�g��[�k�g���ǂF��.�rYy����YJ +��^��t�ξ��>�����9G�!G|���3r���9��� +9��NNߜ�ؐc>&��Ʈ'���*�T<��DŽ4]n�;.ðm:G�:���5ܣ�MC +Y�tʱޱ18�ְ\�YlH�G��X�u::GzI��A�<�OF�H��M���9�K:g9�PH��>�#��s6�M��t�gұ�y�+U�`�����SܲsrE�=��>�VD���~�fa���]�e� 6��6�l����6���|�@:lxs��&t$�-�M���l�T[�kg�Nk���nʁw���At�xj���?`6wc�ʶ���a��i)�n_��G2��d�8�k·�'s�H�Z�o���N2�c���0�Ŀ��fd�c�쒹�r��L�jٜ:9ےαӹ[�5�}:džM�n5�v2:�F:��t� +���6����96ҹ�ۦsΟR�H�R�)�nu9��(m[���P��ϟ��CE����(�Bޝ.5K�̣ջ�(�����V�u:������~�.�A﹟M�/ �&@Zdƃ^�?c�ߝ#5������6�\�QԔk���aj��Ӷ�v�Ц$t,�Q�b�Y�, �{|��Pܺ�w�NK|�ݓ��s�̪�:�s�\�#l�7�m����=���s�&�օ<w�e���g���}"��Yl�|3��y��g�a� +��D������˷��?PKN7g����PK�yW<pollen.todo�����Q(K-*���S�UP2�3PRH�K�O��K ����Z()��q�(��;�D�*���+G���*(�8z)%)J +@% ���,.2���E���9e�)�E�%��� Y,B3PK4�[-m�PK�yW<pollen_profile.profile�����Q(K-*���S�UP2�3PRH�K�O��K ����Z()��qq��e��q��ÙPK7Rp:BPK�yW< +pollen.xmi�]m��8��>��5�U=S����KW&[����j�JM2��U�p������/��m��H�E�E2�n[��#��9GGG����y;y�Q���Ƀ8&0pB�6�}YO���?�����~�|�g���C��6�����G�Imf��f��3�w����ˇI⧿&�y������5�'�<�'QyR��r�e" ������${��.��O&������A�@V�� +���$-;�6a��}���G���$C���9�o����{,�F����{a&3���I_������@�R>ԩ(M�)�;�!�t��g���$�����u�I�����B�h���]������m>m��~g�Ϗ�wza!Q'�����L�>}8��w���j�tjSQ�NEA��n;��Dz�n�3��� O����W�e��[} +�[�x����t|�w�ʾ��6��7�aR����^o��s;N"���=���UV[�In����_�v�B�ž�}�xo��^]�%۔<�I�DC���֒%�ǻO�_��I�s3$�T����n�I�cW*�VĂ��9���F�#��z��XBR\�R���f�m-��G* ���Z��]?�?`sڦ�����8��$خ�vbO�M�� D��((���,:r�jη0�ϳ]ާgvF/0�g�l���r`C/u�������ȱ�r���S�Hө,؆+�v>�M�t]GE���r�P���p��B?{��}���ɏ������ΰ?�}+�d:��ђ: +����֊`X/�ҟ���;MM[U�>��'M0GFQP��`�������0�!�f�>�C>O�ȷ� zL5�b��@SLW:�i�7�i�g��w�O��N�����.� +�s�o �@�v��mz�D�T�S�ȱ5����l��͞���ߥp�ۣ���ص�4�����E���GT�3+-�9�!�k���M٭&�ݮ��ҳ�q^�Zٖ�d�Y����X�5���Tu��j��^$I� DU7Qz��K���^���K���h�.����e���X��Ӏ�i���р���]״��d�A6C�\to��&x[?5M�^��|p�Ç$���p +, ��ח셓R�Y�k��e�1�W�w�؍�I��8t�@Gf����'�a�%�Ïj�r���I�f��:����«�����(~�o����d�`�iJ٬�0zu��?C�,��Dps�c +Si�\˲e�u�g����:��i�b�()���G�n_Ϟ�2�b6%��w J� +;p�,Uj�hqW"��i�Ł��1S�$�5�.��S=����)�R�y�'���Tʄ�6�>�Pm�g +��DmH���i�?���cY��d�� +��7���}Y��ܗ��Lqqs�s͜��������I�*p���>�=Z\�n��w���sxt.���ɗ�G�0��"i{d@7_�g�3��]�͘&��MOrmSAIZt�!�^g�f��<��]$\���+z��!P�A�[��.�7��4-�z� +U1M�ѐ\1�5N��Kotx��Zj��M^�R��ҹϫT�C��D�,M/D�ɋ^��]����)��x�*&OA$W�~���*�{����;���A{� �wa�'���)�#�E�8� ��D�ՇA�X���f_l!1���;r��7�*%[+h������I���a��U�p��wq#��.���J� +)i�=91s=�[��A��L��Y��x�jgu��H��k4�,���q�}�7FQ�e�l�I�䨮+gc:��k�/��C��~�1��r2�)F�s�T�� +`q�RI0�]'K���x�D@"Rk�m���!��� �a � #w�$����_ ��[I1��.9P�}�!��YcI~͵�a�Cr����MeÔ$��S����)D��z��R�W�t�ucl�2�;N+�6w�3#e�)�����]�ud�bV�?���+$��cF��t"g�k`�]��'�� ����VU�FL�Sl�7��dA*T"w8�*�6et�46�s�����D:�60L�|X�� +ٍg�E�m�QRܲd��"��t;F#a��9���KĂqB{�ܑT�p˹��^�X.j!��a���(�'IR�!M��շ�ƿ��r��IyD��<���t���H������ߥ��;��>| +O�� �X\��'����F_��Gq����:|~~L�ܑ\�p�$и�%� +�|��~x��7��*�&�^X0�i��^d����'��'�8�!�^l���VD��tN���W�][�2�}�ߛ.l�`�u���a���8�*ܤ&о7 �b��l��2{9 >�C��h����LbO.*�Ig� 㴥��1���x��D����k��T(w-��ʧ J���ǿոnt`|~ +�Xi_9���Q��MҀL�R��g��&���K��̅S����_Q��q����w ��$�eq�S�,�OCPtU� Ȳ�i�-�:�Q;OEaݸ� ;�j������YS�Cn= ȷ�*����{���V����O|�A��~�7�S�=:�� +T:Z~r����֜�Ԙ�$���~�b����$�|R����т0����$��\��8#�JV�?���� ����|0�٦�с� 7�"�ޡ؆$�y�ѱ�]����$b��q�.H���Jn��Dz�BcL�M4N�B20�#N*U�T�> +���0�_�{�=!��xzAk����ȹ�Z3A7]�Iqж0���$���O�0�r#_�c��$_�*U`͉HUޫum�rv�#_{�u�$��h\wڥ��lÔ�H����N� +��]3@c���OH� +�Fʚ� Ϛ\�p�иyɅ���l|s�+�{����T�h�|�(�,�Y,�`@�)��>��j�e�q����[�;�'� n]C���x�כ[�DF��khaE-�F$5f��Y��nF= ��ٱI1�٥ +� +��,�0p9�Hu�D٤y��R�����:�7W������Ѿ_. ��Ew�|����p��N�Cj̏�l�����I$:V���y~�R� +<#ɗ<o pr`��m�3��f|�D�)��=@JP�pC\p�[���gd�c�U=(5ۙ� ��~ +x��@,�!#�A�(�R�����H��2_'�9� +r�bqq`�ʸe]Sd��fV%�5��"g�jz��:����/����P�C�!DN� +7D%W�� +�Yw�tWS4�Y���0K��O�RB�C�H�ï$`�K � +7GyM���J�YI5F��=���1��+"oF3 �I���W� +7W��L��xeb����r(U�� + Dݡ1�8ۚ���=g�%��!�Dy�q�½s@c��!����T�6&�#�KXc���Xfe��1� +��0�Ï�q�,$�i��h!Ò�q���4)_f��jBq�����T6dG����@�#����Y0�2|���O�NE�O��ɵ��MIr��?DC�����]� �N��2a�t��6�Ar�c�kG��$��kت��@�Liz��i��1N�{�T����#��P���:dZ�<�C�?�.|�����)�0�ē$�Q+�bE��*�H5��=gN��~��«��D.��_9W�h����Ɉ2Wۢ=:,ra����>��6���&���=�0h��F���e9�`ț�/cd$�fK�Z�$��AB���y�Z ��C��;��{�%���zu�)�Y!n��i��Q��&�Pɔs Ƣʀ\R)S��TJ���Hr!,*~炆�R�V�^�����Q�O;c\'|N�s?a�v�#^\�͌���hӓ\�D�ՆLB +RE����������D��FD�-��F{�`FI�f�1O�j +�]*��Vш�٠LA�v�U�L���(?1{�a��D�Ȟ�T�ˈ�0�{4�q Oo�6�v!����w����rj +��~���wL9�vin�x�[���#�*�L����9Sss�{�UYp�)�o\q# +�Hq# +d��ۿ��:X�ĩ�$���9�5����*S�}ilhۙkl������:�LE�^�}X�dUAg�CR.@��qV�kjU�@��<��v�l1��+xW<��\���Z.�����r +�zѫ#CιJ�CL�%�!g���Y�m�J���N= �*��:� +v�j>(��BȜt\'�.4袒\���K�\7�Z7�׆�ݼn6Gƫ�Ŋ�Zs��Bx���)"Lr.��i�Ic�}�u�k�X���9���A�0�d�6\A<t�l���"]Ԓ���pj�ݼ��@��� +�[�*VC�-�vT��;Ŭ�2~C�� ҄#��;�~2���I~hUɖ�nT�%2��/Qtγß�� �����-d.��z�,1ҁ[�"W����W��1�5t�4͜kdCM;���Z7������[��M��=��7X�+�����X�5˺��%K��o�G�s�'K�����1��ˮ-��]E�JZdƕ��o��S +²�OOT�t�����(��uL���,|�W�n[;|�1U��p�,;��}=��ܡ�'���6o.��i�g�"�Q�'� +.��6zW)m/)tg/4�A�j���3��g��,��V�����̙࿀�=?���rP��N +��YL���T���J�/0���74@�K��n��ݶ�` U�Yk���m� �%k�kDZ��z��M� J�u�W��an|���o�^��������'�lӦ%}w)םJ�-��R�b�[���>ȅ�pj��ޭD���d��} ��\4+���ޑ@��Dտ ܐ39�Dک�o%+j�Q�RreM��>�wD���l���h����媯�Z����-�`� +L��`��ok�Cij��Yh�r��>dgP ;)����d���N�Az�(ԑ�w��]���G��SG����Ԩ��:�����$�e�^�.�� \��F��r���0/[J�ׇ��������,*�gѢ��/�� ���b��-}��(���˔vhߜc���ߒ��gѠ�,k��GE�V���d[È�+�]�ɂ�\�B~2�s�J�B|������ƽL���" +�[��7��p���X_��(�.+�G�նf�j[S�7��V.�^���(�v���1Ǘ�U�����h�?K`��b�Tt?���'�T�Obs��D7Kd�p�D�Kd��gI�[�*>|��Ī�Ԓ�L�A1v`9r*&�r���!���.O���O�BwVк�ӇBÒ��\�?J�gR!>�����B��@��6����0=V�. + +nSK��6�S|*S��芥�Q�9k��]4*�Oc��bа^n���[��`u��I��ϼ쵢T|T,x���&��d4�ŚS1x��9 +a��=�nL��.���(]J�G��e�h����b�m�����TXV��%��%���%3�� +�E�R�u9��Bq��3/�[Q!��������="#3 �N�2�0�Ӥ.ԈRUQ���%��%6nJ�>|y�(q�����C���@�6���D�kJ2�fu_tk�Q�Q���f����e�.JB-pa�h����0Lؽw�b`��:5%1�iM��>�xp1P� [�ci%۸���I�ŀζL��(�&T6� ��iB�d��N��ifyr����+��ࠠ�o���XT���/c +��k�r��ѫ�:z{�Y�QP����D�_2 +J<R������ᠠ*xqd8(��#��_$��w}���ˮk�@sRȞl��胼�.�\��<ے@�RK&y���1 �.,H�?�bd�KF#y��Q�$�� k�|j��ZC����H�?v�K�#�L���٩_����i���H�Ϟ�ѩ����c{�H0w�� y��iI0w�������d�vA���� k#�f5���CS�Md#�2��^62�i#�y>@�@OUStm�f��4�pQ�� wohb�(ߓ�@:�LE�ޓ(i��ɪb�6�B�'Y9��~�'j��1wz�"����w������ �����_���_PK �;���PK�yW<ptB�pollen.argoPK�yW<N7g����Gpollen_DC_Pollen.pgmlPK�yW<4�[-m�4pollen.todoPK�yW<7Rp:B�pollen_profile.profilePK�yW< �;��� +Xpollen.xmiPK1;5 \ No newline at end of file Deleted: trunk/pollen-business/src/test/java/org/chorem/pollen/business/converters/EnumControllerTest.java =================================================================== --- trunk/pollen-business/src/test/java/org/chorem/pollen/business/converters/EnumControllerTest.java 2010-02-23 09:39:10 UTC (rev 2877) +++ trunk/pollen-business/src/test/java/org/chorem/pollen/business/converters/EnumControllerTest.java 2010-02-23 15:12:23 UTC (rev 2878) @@ -1,120 +0,0 @@ -/* *##% Pollen - * Copyright (C) 2009 CodeLutin - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. ##%*/ - -package org.chorem.pollen.business.converters; - -import static org.junit.Assert.assertEquals; - -import org.chorem.pollen.business.persistence.Poll; -import org.chorem.pollen.business.persistence.PollDAO; -import org.chorem.pollen.business.persistence.PollenModelDAOHelper; -import org.chorem.pollen.business.utils.ContextUtil; -import org.chorem.pollen.common.ChoiceType; -import org.chorem.pollen.common.PollType; -import org.chorem.pollen.common.VoteCountingType; -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; - -/** - * Tests de la gestion des énumérations. - * - * @author fdesbois - * @version $Id$ - */ -public class EnumControllerTest { - - @BeforeClass - public static void setUpClass() throws Exception { - ContextUtil.getInstance().buildContext(); - } - - @AfterClass - public static void tearDownClass() throws Exception { - ContextUtil.getInstance().getContext().clear(false); - } - - @Before - public void setUp() { - } - - @After - public void tearDown() { - } - - /** - * Test of setChoiceType method, of class EnumController. - */ - @Test - public void testSetChoiceType() { - try { - TopiaContext transaction = ContextUtil.getInstance().getContext() - .beginTransaction(); - - ChoiceType choice = ChoiceType.DATE; - PollDAO pollDAO = PollenModelDAOHelper.getPollDAO(transaction); - Poll ePoll = pollDAO.create(); - EnumController enumCtrl = new EnumController(transaction); - enumCtrl.setChoiceType(choice, ePoll); - if (ePoll.getChoiceType() != null) { - assertEquals(ePoll.getChoiceType().getName(), choice.name()); - } - - transaction.commitTransaction(); - transaction.closeContext(); - } catch (TopiaException e) { - e.printStackTrace(); - } - } - - /** - * Test of getChoiceType method, of class EnumController. - */ - @Test - public void testGetChoiceType_String() { - String type = "DATE"; - ChoiceType expResult = ChoiceType.DATE; - ChoiceType result = EnumController.getChoiceType(type); - assertEquals(expResult, result); - } - - /** - * Test of getVoteCountingType method, of class EnumController. - */ - @Test - public void testGetVoteCountingType_String() { - String type = "NORMAL"; - VoteCountingType expResult = VoteCountingType.NORMAL; - VoteCountingType result = EnumController.getVoteCountingType(type); - assertEquals(expResult, result); - } - - /** - * Test of getPollType method, of class EnumController. - */ - @Test - public void testGetPollType_String() { - String type = "RESTRICTED"; - PollType expResult = PollType.RESTRICTED; - PollType result = EnumController.getPollType(type); - assertEquals(expResult, result); - } - -} \ No newline at end of file Modified: trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java =================================================================== --- trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java 2010-02-23 09:39:10 UTC (rev 2877) +++ trunk/pollen-business/src/test/java/org/chorem/pollen/business/services/ServicePollImplTest.java 2010-02-23 15:12:23 UTC (rev 2878) @@ -49,7 +49,7 @@ * @version $Id$ */ public class ServicePollImplTest { - private ServicePollImpl instance = new ServicePollImpl(); + private static ServicePollImpl instance; /** log. */ private static final Log log = LogFactory.getLog(ServicePollImplTest.class); @@ -60,6 +60,7 @@ @BeforeClass public static void setUpClass() throws Exception { ContextUtil.getInstance().buildContext(); + instance = new ServicePollImpl(); } @AfterClass @@ -198,6 +199,7 @@ PollDTO result = instance.findPollByPollId(pollUID); log.debug("title : " + result.getTitle()); assertEquals(pollId, result.getId()); + assertEquals(VoteCountingType.NORMAL, result.getVoteCounting()); } /** Modified: trunk/pollen-votecounting/src/main/java/org/chorem/pollen/common/PollType.java =================================================================== --- trunk/pollen-votecounting/src/main/java/org/chorem/pollen/common/PollType.java 2010-02-23 09:39:10 UTC (rev 2877) +++ trunk/pollen-votecounting/src/main/java/org/chorem/pollen/common/PollType.java 2010-02-23 15:12:23 UTC (rev 2878) @@ -18,4 +18,8 @@ public enum PollType { FREE, RESTRICTED, GROUP; + + public static boolean isGroupType(String value) { + return GROUP.name().equals(value); + } }
participants (1)
-
fdesbois@users.chorem.org