org.bolson.vote
Class NamedSTV
java.lang.Object
org.bolson.vote.NameVotingSystem
org.bolson.vote.NamedSTV
public class NamedSTV
- extends NameVotingSystem
Sum up all effective first place votes.
Elect top choice above quota.
Deweight voters to quota/vote.
Need deweight per voter per choice.
Truncated ballots should, if possible, fully deweight on any choices that do get elected. Let voters who cast fuller ballots transfer more to lower ranked choices.
- See Also:
http://stv.sourceforge.net/Details.html
,
http://en.wikipedia.org/wiki/Single_Transferable_Vote
Methods inherited from class org.bolson.vote.NameVotingSystem |
defaultMain, denibble, depercentHexify, fromUrlEncoded, getDebug, getImplNames, getIpmlForName, htmlExplain, htmlExplain, htmlSummary, nameEqStrToVoteArray, nameEqStrToVoteArray, percentHexify, readVotes, registerImpl, resultsHTMLDisplay, sort, urlEncode, voteNameEqStr, voteOrderSpec, voteRating, voteSpecToNameVoteArray, winnerSummaryHTMLTable |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
theTSC
protected static NamedSTV.TallyStateComparator theTSC
NamedSTV
public NamedSTV()
init
public int init(java.lang.String[] argv)
- Description copied from class:
NameVotingSystem
- Set options for voting system.
Default implementation sets debug to true if it sees "debug".
Skip pass null entries, which may have been yanked by a subclass.
Unless there's an error, last line should be "return super.init( argv );"
Multi-seat capable implementations should accept an option pair ("seats", <int>) to set the number of seats.
- Overrides:
init
in class NameVotingSystem
- Parameters:
argv
- array of options, just like main()
- Returns:
- 0 on success
voteRating
public void voteRating(NameVotingSystem.NameVote[] vote)
- Description copied from class:
NameVotingSystem
- Vote a set of ratings.
Keys of the map should be strings (choice names) and values should be of a numeric type.
This is slightly faster than the version that takes a map because no conversion is done.
- Specified by:
voteRating
in class NameVotingSystem
- Parameters:
vote
- a set of (name,rating) pairs- See Also:
NameVotingSystem.voteRating(Map)
getWinners
public NameVotingSystem.NameVote[] getWinners()
- Specified by:
getWinners
in class NameVotingSystem
- Returns:
- A sorted array of (name,rating) pairs. Ties can be determined by rating.
htmlSummary
public java.lang.StringBuffer htmlSummary(java.lang.StringBuffer sb)
- Description copied from class:
NameVotingSystem
- Get HTML summary of voting system state.
- Specified by:
htmlSummary
in class NameVotingSystem
- Parameters:
sb
- a valid StringBuffer to which HTML summary will be appended.
- Returns:
- same StringBuffer passed in, with HTML summary of voting system state appended.
name
public java.lang.String name()
- Specified by:
name
in class NameVotingSystem
- Returns:
- name of this voting system (may be modified by settings from init)
quota
public static double quota(int style,
double votes,
int seats)
main
public static void main(java.lang.String[] argv)