@Override
	public ElectionResult getElectionResult() {
		if (published && electionResult == null)
			switch (type) {
			case SIMPLEPLURALITY:
				electionResult = new DnDSimplePluralityResult(this);
				break;
			case ALTERNATE:
				electionResult = new DnDAlternativeVoteResult(votes, getCandidates());
				break;
			case REFERENDUM:
				electionResult = new DnDReferendumResult(votes);
				break;
			}
		return electionResult;
	}