public interface CountNode
Modifier and Type | Field and Description |
---|---|
static byte |
DART_SECTOR_MAX
The maximum dart sector, or 20.
|
Modifier and Type | Method and Description |
---|---|
String |
candidateName()
Identifies the candidate selected by the
person, for whom a vote is to be cast if the person is a
voter.
|
byte |
dartSector()
The dart sector occupied by this node, if any.
|
Long |
directVoterCount()
The number of other nodes that name this node as a candidate.
|
String |
displayTitle()
The display title of the person's position, or null if there is none.
|
boolean |
isBaseCandidate()
Answers whether this node is a root candidate or a cycler.
|
boolean |
isCandidate()
Answers whether this node has a voter.
|
boolean |
isCycler()
Answers whether this node is voting for a voter of it's own, directly or
indirectly.
|
boolean |
isRootCandidate()
Answers whether this node is a candidate who is not a voter.
|
boolean |
isVoter()
|
String |
name()
The mailish username of the person for whom this node accounts.
|
static final byte DART_SECTOR_MAX
String candidateName()
byte dartSector()
A cycler has two roles for purposes of sectoring: voter and end-candidate. If the cycler is not among the top 20 of end-candidates, then she (or he) will occupy no sector in either role. Otherwise she will occupy the same sector in both roles. It is therefore possible that she (now in the role of voter) will displace a co-voting peer from a pre-occupied sector. This is the one exception to the rule of non-displacement. To illustrate, consider the cycle pictured below. If the cycle is formed by (s) casting for (c), then it is possible for one of (p) to be forced to a different dart sector.
( ) ( ) \ ( ) / \ | / \ | / | ( ) \|/ | vote flow \ ( )---(s) (p) V \ / \ / \ / \ / ( ) (c)----(p) \ / \ / ( )---( ) <---
Dart sector assignments are persisted from count to count in the voter input table. Reassignments occur at count time due to collisions from vote shifts and these are persisted individually. Where a count based on an old snapshot of the voter input is remounted, the reassignments of that count might (supposedly) clobber those of historically more recent counts. The result would be a degree of sector displacement surfacing on the next count, based on a new snapshot of the voter input. This should be corrected when voter input storage is expanded to include historical vote shifts and other changes of vote data, as sector reassignments would then be recorded in historical sequence.
Acknowledgement: Dart sectoring was first proposed by Thomas von der Elbe. See Start/Metagov 2011-April/003824.
Long directVoterCount()
String displayTitle()
boolean isBaseCandidate()
boolean isCandidate()
boolean isCycler()
boolean isRootCandidate()
boolean isVoter()