View Javadoc
1   package civitas.common.election;
2   
3   import org.springframework.beans.factory.annotation.Autowired;
4   import org.springframework.stereotype.Controller;
5   
6   import civitas.common.ballotdesign.GetNthContext;
7   import civitas.common.capabilityencryption.VoterEncCapabilities;
8   import civitas.common.votersubmission.VoterSubmission;
9   
10  @Controller
11  public class IsVoterSubmissionInBlock {
12  	@Autowired
13  	GetVoterBlockForBlock getVoterBlockForBlock;
14  
15  	@Autowired
16  	GetNthContext getNthContext;
17  
18  	@Autowired
19  	GetContextForBlock getContextForBlock;
20  
21  	@Autowired
22  	GetBaseContext getBaseContext;
23  
24  	public boolean apply(final ElectionDetails that, final VoterSubmission voter, final int block) {
25  		if (voter == null) {
26  			throw new IllegalArgumentException("null voter");
27  		}
28  		int voterBlock = getVoterBlockForBlock.apply(that, block);
29  		return voterBlock == voter.voterBlock;
30  	}
31  
32  	public boolean apply(
33  			final ElectionDetails that, final VoterEncCapabilities voter, final String context, final int block) {
34  		if (voter == null) {
35  			throw new IllegalArgumentException("null voter");
36  		}
37  		int voterBlock = getVoterBlockForBlock.apply(that, block);
38  		int contextN = getContextForBlock.apply(that, block);
39  		String targetContext = getNthContext.apply(that.ballotDesign, contextN);
40  		return voterBlock == voter.voterBlock && targetContext.equals(context);
41  	}
42  
43  	public boolean apply(
44  			final ElectionDetails that, final VoterSubmission voter, final String context, final int block) {
45  		if (voter == null) {
46  			throw new IllegalArgumentException("null voter");
47  		}
48  
49  		int voterBlock = getVoterBlockForBlock.apply(that, block);
50  		int contextN = getContextForBlock.apply(that, block);
51  		String targetContext =
52  				getBaseContext.apply(that, voterBlock) + getNthContext.apply(that.ballotDesign, contextN);
53  		return voterBlock == voter.voterBlock && targetContext.equals(context);
54  	}
55  }