Author: agiraudet Date: 2013-06-10 15:27:30 +0200 (Mon, 10 Jun 2013) New Revision: 663 Url: http://nuiton.org/projects/sandbox/repository/revisions/663 Log: ajout des demos pollen avec la syntaxe pure yaml et la syntaxe user friendly (avec les fichiers) Added: testEugeneUML-YAML/pollen/demo-pollen-pure_yaml/ testEugeneUML-YAML/pollen/demo-pollen-pure_yaml/pollen-yaml.sh testEugeneUML-YAML/pollen/demo-pollen-pure_yaml/pollen.yamlobjectmodel testEugeneUML-YAML/pollen/demo-pollen-user_friendly/ testEugeneUML-YAML/pollen/demo-pollen-user_friendly/pollen-yaml.sh testEugeneUML-YAML/pollen/demo-pollen-user_friendly/pollen.yamlobjectmodel Added: testEugeneUML-YAML/pollen/demo-pollen-pure_yaml/pollen-yaml.sh =================================================================== --- testEugeneUML-YAML/pollen/demo-pollen-pure_yaml/pollen-yaml.sh (rev 0) +++ testEugeneUML-YAML/pollen/demo-pollen-pure_yaml/pollen-yaml.sh 2013-06-10 13:27:30 UTC (rev 663) @@ -0,0 +1,11 @@ +#!/bin/bash + +#cd /tmp +svn checkout http://svn.chorem.org/svn/pollen/trunk/ pollen +wget http://svn.nuiton.org/svn/sandbox/testEugeneUML-YAML/pollen/demo-pollen-pure... -O pollen/pollen-persistence/src/main/models/pollen.yamlobjectmodel +sed -i '152s/.*/\ \ \ \ \<eugenePluginVersion\>2.6.4-SNAPSHOT\<\/eugenePluginVersion\>/' pollen/pom.xml +cd pollen +mvn clean && mvn install -e +#&& cd pollen-ui-struts2 && mvn jetty:run +#localhost:8080/pollen + Property changes on: testEugeneUML-YAML/pollen/demo-pollen-pure_yaml/pollen-yaml.sh ___________________________________________________________________ Added: svn:executable + * Added: testEugeneUML-YAML/pollen/demo-pollen-pure_yaml/pollen.yamlobjectmodel =================================================================== --- testEugeneUML-YAML/pollen/demo-pollen-pure_yaml/pollen.yamlobjectmodel (rev 0) +++ testEugeneUML-YAML/pollen/demo-pollen-pure_yaml/pollen.yamlobjectmodel 2013-06-10 13:27:30 UTC (rev 663) @@ -0,0 +1,785 @@ +%YAML 1.1 +--- + +- name: Pollen +- version: 1.0 +- package: org.chorem.pollen.business.persistence + +- class: + - name: Choice + - stereotypes: + - entity + - attribute: + - name: name + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: description + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: validate + - associationType: composite + - visibility: public + - type: boolean + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - visibility: public + - associationClassName: org.chorem.pollen.business.persistence.VoteToChoice + - type: org.chorem.pollen.business.persistence.Vote + - reverseMaxMultiplicity: -1 + - minMultiplicity: 0 + - maxMultiplicity: -1 + - navigable: true + - ordering: ordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.Poll + - reverseMaxMultiplicity: -1 + - minMultiplicity: 1 + - maxMultiplicity: 1 + - navigable: false + - ordering: unordered + +- class: + - name: ChoicesGroup + +- class: + - name: PollAccount + - stereotypes: + - entity + - attribute: + - name: accountId + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: votingId + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: email + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - visibility: public + - associationClassName: org.chorem.pollen.business.persistence.PersonToList + - type: org.chorem.pollen.business.persistence.VotingList + - reverseMaxMultiplicity: -1 + - minMultiplicity: 0 + - maxMultiplicity: -1 + - navigable: true + - ordering: ordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.Poll + - reverseAttributeName: creator + - reverseMaxMultiplicity: 1 + - minMultiplicity: 0 + - maxMultiplicity: -1 + - navigable: false + - ordering: ordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.Comment + - reverseMaxMultiplicity: 1 + - minMultiplicity: 0 + - maxMultiplicity: -1 + - navigable: false + - ordering: ordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.Vote + - reverseMaxMultiplicity: 1 + - minMultiplicity: 0 + - maxMultiplicity: -1 + - navigable: true + - ordering: ordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.PersonList + - reverseMaxMultiplicity: -1 + - minMultiplicity: 1 + - maxMultiplicity: 1 + - navigable: true + - ordering: unordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.UserAccount + - reverseMaxMultiplicity: -1 + - minMultiplicity: 1 + - maxMultiplicity: 1 + - navigable: true + - ordering: unordered + +- class: + - name: VotingList + - stereotypes: + - entity + - attribute: + - name: name + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: weight + - associationType: composite + - visibility: public + - type: double + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - visibility: public + - associationClassName: org.chorem.pollen.business.persistence.PersonToList + - type: org.chorem.pollen.business.persistence.PollAccount + - reverseMaxMultiplicity: -1 + - minMultiplicity: 1 + - maxMultiplicity: -1 + - navigable: true + - ordering: ordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.Poll + - reverseMaxMultiplicity: -1 + - minMultiplicity: 1 + - maxMultiplicity: 1 + - navigable: false + - ordering: unordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.Vote + - reverseMaxMultiplicity: 1 + - minMultiplicity: 0 + - maxMultiplicity: 1 + - navigable: true + - ordering: unordered + +- class: + - name: Vote + - stereotypes: + - entity + - attribute: + - name: weight + - associationType: composite + - visibility: public + - type: double + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: comment + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: anonymous + - associationType: composite + - visibility: public + - type: boolean + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - visibility: public + - associationClassName: org.chorem.pollen.business.persistence.VoteToChoice + - type: org.chorem.pollen.business.persistence.Choice + - reverseMaxMultiplicity: -1 + - minMultiplicity: 1 + - maxMultiplicity: -1 + - navigable: true + - ordering: ordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.Poll + - reverseMaxMultiplicity: -1 + - minMultiplicity: 1 + - maxMultiplicity: 1 + - navigable: false + - ordering: unordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.PollAccount + - reverseMaxMultiplicity: -1 + - minMultiplicity: 0 + - maxMultiplicity: 1 + - navigable: true + - ordering: unordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.VotingList + - reverseMaxMultiplicity: 1 + - minMultiplicity: 0 + - maxMultiplicity: 1 + - navigable: false + - ordering: unordered + +- class: + - name: UserAccount + - stereotypes: + - entity + - attribute: + - name: login + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: password + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: firstName + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: lastName + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: administrator + - associationType: composite + - visibility: public + - type: boolean + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: language + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: email + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - operation: + - name: getDisplayName + - visibility: public + - returnParameter: + - type: java.lang.String + - attribute: + - name: favoriteList + - visibility: public + - type: org.chorem.pollen.business.persistence.PersonList + - reverseAttributeName: owner + - reverseMaxMultiplicity: 1 + - minMultiplicity: 0 + - maxMultiplicity: -1 + - navigable: true + - ordering: ordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.PollAccount + - reverseMaxMultiplicity: 1 + - minMultiplicity: 0 + - maxMultiplicity: -1 + - navigable: true + - ordering: ordered + +- class: + - name: PreventRule + - stereotypes: + - entity + - attribute: + - name: scope + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: sensibility + - associationType: composite + - visibility: public + - type: int + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: repeated + - associationType: composite + - visibility: public + - type: boolean + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: active + - associationType: composite + - visibility: public + - type: boolean + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: oneTime + - associationType: composite + - visibility: public + - type: boolean + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: method + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.Poll + - reverseMaxMultiplicity: -1 + - minMultiplicity: 1 + - maxMultiplicity: 1 + - navigable: false + - ordering: unordered + +- class: + - name: Poll + - stereotypes: + - entity + - attribute: + - name: pollId + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: title + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: description + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: beginChoiceDate + - associationType: composite + - visibility: public + - type: java.util.Date + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: beginDate + - associationType: composite + - visibility: public + - type: java.util.Date + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: endDate + - associationType: composite + - visibility: public + - type: java.util.Date + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: maxChoiceNb + - associationType: composite + - visibility: public + - type: int + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: closed + - associationType: composite + - visibility: public + - type: boolean + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: choiceAddAllowed + - associationType: composite + - visibility: public + - type: boolean + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: anonymousVoteAllowed + - associationType: composite + - visibility: public + - type: boolean + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: publicResults + - associationType: composite + - visibility: public + - type: boolean + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: continuousResults + - associationType: composite + - visibility: public + - type: boolean + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: endChoiceDate + - associationType: composite + - visibility: public + - type: java.util.Date + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: voteCountingType + - associationType: composite + - visibility: public + - type: int + - minMultiplicity: 1 + - maxMultiplicity: 1 + - operation: + - name: getVoteByPollAccount + - visibility: public + - returnParameter: + - type: org.chorem.pollen.business.persistence.Vote + - parameter: + - name: account + - type: org.chorem.pollen.business.persistence.PollAccount + - operation: + - name: getAdminId + - visibility: public + - returnParameter: + - type: java.lang.String + - operation: + - name: getVoteId + - visibility: public + - returnParameter: + - type: java.lang.String + - parameter: + - name: account + - type: org.chorem.pollen.business.persistence.PollAccount + - operation: + - name: isStarted + - visibility: public + - returnParameter: + - type: boolean + - parameter: + - name: currentDate + - type: java.util.Date + - operation: + - name: isRunning + - visibility: public + - returnParameter: + - type: boolean + - parameter: + - name: currentDate + - type: java.util.Date + - operation: + - name: isFinished + - visibility: public + - returnParameter: + - type: boolean + - parameter: + - name: currentDate + - type: java.util.Date + - operation: + - name: isAddChoiceStarted + - visibility: public + - returnParameter: + - type: boolean + - parameter: + - name: currentDate + - type: java.util.Date + - operation: + - name: isAddChoiceRunning + - visibility: public + - returnParameter: + - type: boolean + - parameter: + - name: currentDate + - type: java.util.Date + - operation: + - name: isAddChoiceFinished + - visibility: public + - returnParameter: + - type: boolean + - parameter: + - name: currentDate + - type: java.util.Date + - operation: + - name: getPollAccounts + - visibility: public + - returnParameter: + - type: java.util.List<org.chorem.pollen.business.persistence.PollAccount> + - parameter: + - name: withNoVote + - type: boolean + - operation: + - name: getPersonToListByVote + - visibility: public + - returnParameter: + - type: org.chorem.pollen.business.persistence.PersonToList + - parameter: + - name: vote + - type: org.chorem.pollen.business.persistence.Vote + - operation: + - name: getPreventRuleByScope + - visibility: public + - returnParameter: + - type: org.chorem.pollen.business.persistence.PreventRule + - parameter: + - name: scope + - type: java.lang.String + - operation: + - name: isAnonymous + - visibility: public + - returnParameter: + - type: boolean + - operation: + - name: isPollFree + - visibility: public + - returnParameter: + - type: boolean + - operation: + - name: isPollGroup + - visibility: public + - returnParameter: + - type: boolean + - operation: + - name: isPollRestricted + - visibility: public + - returnParameter: + - type: boolean + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.Vote + - associationType: composite + - reverseMaxMultiplicity: 1 + - minMultiplicity: 0 + - maxMultiplicity: -1 + - navigable: true + - ordering: ordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.Choice + - associationType: composite + - reverseMaxMultiplicity: 1 + - minMultiplicity: 0 + - maxMultiplicity: -1 + - navigable: true + - ordering: ordered + - attribute: + - name: creator + - visibility: public + - type: org.chorem.pollen.business.persistence.PollAccount + - reverseMaxMultiplicity: -1 + - minMultiplicity: 0 + - maxMultiplicity: 1 + - navigable: true + - ordering: unordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.Comment + - associationType: composite + - reverseMaxMultiplicity: 1 + - minMultiplicity: 0 + - maxMultiplicity: -1 + - navigable: true + - ordering: ordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.PreventRule + - associationType: composite + - reverseMaxMultiplicity: 1 + - minMultiplicity: 0 + - maxMultiplicity: -1 + - navigable: true + - ordering: ordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.VotingList + - associationType: composite + - reverseMaxMultiplicity: 1 + - minMultiplicity: 0 + - maxMultiplicity: -1 + - navigable: true + - ordering: ordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.PollType + - minMultiplicity: 1 + - maxMultiplicity: 1 + - navigable: true + - ordering: unordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.ChoiceType + - minMultiplicity: 1 + - maxMultiplicity: 1 + - navigable: true + - ordering: unordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.PollVoteVisibility + - minMultiplicity: 1 + - maxMultiplicity: 1 + - navigable: true + - ordering: unordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.PollCommentVisibility + - minMultiplicity: 1 + - maxMultiplicity: 1 + - navigable: true + - ordering: unordered + +- class: + - name: PersonList + - stereotypes: + - entity + - attribute: + - name: name + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: owner + - visibility: public + - type: org.chorem.pollen.business.persistence.UserAccount + - reverseAttributeName: favoriteList + - reverseMaxMultiplicity: -1 + - minMultiplicity: 1 + - maxMultiplicity: 1 + - navigable: true + - ordering: unordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.PollAccount + - reverseMaxMultiplicity: 1 + - minMultiplicity: 1 + - maxMultiplicity: -1 + - navigable: true + - ordering: ordered + +- class: + - name: Comment + - stereotypes: + - entity + - attribute: + - name: text + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: postDate + - associationType: composite + - visibility: public + - type: java.util.Date + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: author + - associationType: composite + - visibility: public + - type: java.lang.String + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.Poll + - reverseMaxMultiplicity: -1 + - minMultiplicity: 1 + - maxMultiplicity: 1 + - navigable: false + - ordering: unordered + - attribute: + - visibility: public + - type: org.chorem.pollen.business.persistence.PollAccount + - reverseMaxMultiplicity: -1 + - minMultiplicity: 1 + - maxMultiplicity: 1 + - navigable: true + - ordering: unordered + +- associationClass: + - name: PersonToList + - stereotypes: + - entity + - participant: + - name: org.chorem.pollen.business.persistence.PollAccount + - participant: + - name: org.chorem.pollen.business.persistence.VotingList + - attribute: + - name: weight + - associationType: composite + - visibility: public + - type: double + - minMultiplicity: 1 + - maxMultiplicity: 1 + - attribute: + - name: hasVoted + - associationType: composite + - visibility: public + - type: boolean + - minMultiplicity: 1 + - maxMultiplicity: 1 + +- associationClass: + - name: VoteToChoice + - stereotypes: + - entity + - participant: + - name: org.chorem.pollen.business.persistence.Choice + - participant: + - name: org.chorem.pollen.business.persistence.Vote + - attribute: + - name: voteValue + - associationType: composite + - visibility: public + - type: java.lang.Integer + - minMultiplicity: 1 + - maxMultiplicity: 1 + +- enumeration: + - name: PollVoteVisibility + +- enumeration: + - name: PollCommentVisibility + +- enumeration: + - name: ChoiceType + +- enumeration: + - name: PollType + Added: testEugeneUML-YAML/pollen/demo-pollen-user_friendly/pollen-yaml.sh =================================================================== --- testEugeneUML-YAML/pollen/demo-pollen-user_friendly/pollen-yaml.sh (rev 0) +++ testEugeneUML-YAML/pollen/demo-pollen-user_friendly/pollen-yaml.sh 2013-06-10 13:27:30 UTC (rev 663) @@ -0,0 +1,11 @@ +#!/bin/bash + +#cd /tmp +svn checkout http://svn.chorem.org/svn/pollen/trunk/ pollen +wget http://svn.nuiton.org/svn/sandbox/testEugeneUML-YAML/pollen/demo-pollen-user... -O pollen/pollen-persistence/src/main/models/pollen.yamlobjectmodel +sed -i '152s/.*/\ \ \ \ \<eugenePluginVersion\>2.6.4-SNAPSHOT\<\/eugenePluginVersion\>/' pollen/pom.xml +cd pollen +mvn clean && mvn install -e +#&& cd pollen-ui-struts2 && mvn jetty:run +#localhost:8080/pollen + Property changes on: testEugeneUML-YAML/pollen/demo-pollen-user_friendly/pollen-yaml.sh ___________________________________________________________________ Added: svn:executable + * Added: testEugeneUML-YAML/pollen/demo-pollen-user_friendly/pollen.yamlobjectmodel =================================================================== --- testEugeneUML-YAML/pollen/demo-pollen-user_friendly/pollen.yamlobjectmodel (rev 0) +++ testEugeneUML-YAML/pollen/demo-pollen-user_friendly/pollen.yamlobjectmodel 2013-06-10 13:27:30 UTC (rev 663) @@ -0,0 +1,135 @@ +%YAML 1.1 +--- + +name: Pollen +version: 1.0 +package: org.chorem.pollen.business.persistence +imports: + - java.lang.String + - java.util.Date + - java.lang.Integer + - java.util.List + +class Choice <<entity>>: + String name: + String description: + boolean validate: + Vote ordered [*] "VoteToChoice": + +class ChoicesGroup: + +class PollAccount <<entity>>: + String accountId: + String votingId: + String email: + VotingList ordered [*] "PersonToList": + Vote ordered [*] "Vote--PollAccount": + PersonList unordered "PersonList--PollAccount": + UserAccount unordered "PollAccount--UserAccount": + +class VotingList <<entity>>: + String name: + double weight: + PollAccount ordered [1..*] "PersonToList": + Vote unordered [0..1]: + +class Vote <<entity>>: + double weight: + String comment: + boolean anonymous: + Choice ordered [1..*] "VoteToChoice": + PollAccount unordered [0..1] "Vote--PollAccount": + +class UserAccount <<entity>>: + String login: + String password: + String firstName: + String lastName: + boolean administrator: + String language: + String email: + getDisplayName(): String + PersonList favoriteList ordered [*] "UserAccount--PersonList": + PollAccount ordered [*] "PollAccount--UserAccount": + +class PreventRule <<entity>>: + String scope: + int sensibility: + boolean repeated: + boolean active: + boolean oneTime: + String method: + +class Poll <<entity>>: + String pollId: + String title: + String description: + Date beginChoiceDate: + Date beginDate: + Date endDate: + int maxChoiceNb: + boolean closed: + boolean choiceAddAllowed: + boolean anonymousVoteAllowed: + boolean publicResults: + boolean continuousResults: + Date endChoiceDate: + int voteCountingType: + getVoteByPollAccount(PollAccount account): Vote + getAdminId(): String + getVoteId(PollAccount account): String + isStarted(Date currentDate): boolean + isRunning(Date currentDate): boolean + isFinished(Date currentDate): boolean + isAddChoiceStarted(Date currentDate): boolean + isAddChoiceRunning(Date currentDate): boolean + isAddChoiceFinished(Date currentDate): boolean + getPollAccounts(boolean withNoVote): List<PollAccount> + getPersonToListByVote(Vote vote): PersonToList + getPreventRuleByScope(String scope): PreventRule + isAnonymous(): boolean + isPollFree(): boolean + isPollGroup(): boolean + isPollRestricted(): boolean + Vote ordered [*]: + Choice ordered [*]: + PollAccount creator unordered [0..1]: + Comment ordered [*]: + PreventRule ordered [*]: + VotingList ordered [*]: + PollType unordered: + ChoiceType unordered: + PollVoteVisibility unordered: + PollCommentVisibility unordered: + +class PersonList <<entity>>: + String name: + UserAccount owner unordered "UserAccount--PersonList": + PollAccount ordered [1..*] "PersonList--PollAccount": + +class Comment <<entity>>: + String text: + Date postDate: + String author: + PollAccount unordered: + +associationclass PersonToList <<entity>>: + participant: + PollAccount "PersonToList": + VotingList "PersonToList": + double weight: + boolean hasVoted: + +associationclass VoteToChoice <<entity>>: + participant: + Choice "VoteToChoice": + Vote "VoteToChoice": + Integer voteValue: + +enumeration PollVoteVisibility: + +enumeration PollCommentVisibility: + +enumeration ChoiceType: + +enumeration PollType: