BasicAssignment(Assignment a) { this(a.getParticipant(), a.getRole()); }
BasicObservableRoles(Iterable<? extends Assignment> assignments) { // TODO(user): make it a precondition that assignments are for unique participants. for (Assignment a : assignments) { this.assignments.put(a.getParticipant().getAddress(), new BasicAssignment(a)); } }
@Override public Role getRole(ParticipantId participant) { Assignment assignment = getAssignment(participant); if (assignment != null) { Role role = assignment.getRole(); if (role != null) { return role; } } return Policies.DEFAULT_ROLE; }
private Assignment getAssignment(ParticipantId participant) { Assignment result = null; // TODO(user): Make this faster by denormalizing into an index. for (Assignment assignment : assignments.getValues()) { if (assignment.getParticipant().equals(participant)) { result = assignment; // Continue through the list even though a role was found. // We take the last role in the case of multiple. } } return result; }
public AssignmentInitializer(Assignment assignment) { this.address = assignment.getParticipant().getAddress(); this.role = assignment.getRole(); } }