package fr.mieuxvoter.mj; import java.math.BigInteger; /** * Also known as the merit profile of a proposal (aka. candidate), * this holds the amounts of judgments received per grade. */ public interface ProposalTallyInterface { /** * The tallies of each Grade, that is * the amount of judgments received for each Grade by the Proposal, * from "worst" ("most conservative") Grade to "best" Grade. */ public BigInteger[] getTally(); /** * Should be the sum of getTally() * * @return The total amount of judgments received by this proposal. */ public BigInteger getAmountOfJudgments(); /** * Homemade factory to skip the clone() shenanigans. * Used by the score calculus. */ public ProposalTallyInterface duplicate(); /** * Move judgments that were fromGrade into intoGrade. * Used by the score calculus. */ public void moveJudgments(Integer fromGrade, Integer intoGrade); }