[virtualcommons-svn] commit/foraging: alllee: adding candidate set to event so clients can know whi
Status: Beta
Brought to you by:
alllee
From: Bitbucket <com...@bi...> - 2011-10-02 04:49:17
|
1 new changeset in foraging: http://bitbucket.org/virtualcommons/foraging/changeset/584573eb2f5b/ changeset: 584573eb2f5b user: alllee date: 2011-10-02 06:49:06 summary: adding candidate set to event so clients can know which rules participated in a tiebreaker if there was one. affected #: 3 files (-1 bytes) --- a/src/main/java/edu/asu/commons/foraging/event/RuleSelectedUpdateEvent.java Sat Oct 01 21:44:39 2011 -0700 +++ b/src/main/java/edu/asu/commons/foraging/event/RuleSelectedUpdateEvent.java Sat Oct 01 21:49:06 2011 -0700 @@ -1,6 +1,8 @@ package edu.asu.commons.foraging.event; +import java.util.List; + import edu.asu.commons.event.AbstractPersistableEvent; import edu.asu.commons.foraging.rules.ForagingRule; import edu.asu.commons.net.Identifier; @@ -18,21 +20,27 @@ public class RuleSelectedUpdateEvent extends AbstractPersistableEvent { private static final long serialVersionUID = 4360213814026474451L; - private ForagingRule rule; + private final ForagingRule selectedRule; + private final List<ForagingRule> candidates; - public RuleSelectedUpdateEvent(Identifier id, ForagingRule rule) { + public RuleSelectedUpdateEvent(Identifier id, ForagingRule rule, List<ForagingRule> candidates) { super(id, rule.toString()); - this.rule = rule; + this.selectedRule = rule; + this.candidates = candidates; } - public ForagingRule getRule() { - return rule; + public ForagingRule getSelectedRule() { + return selectedRule; } @Override public String toString() { - return rule.toString(); + return selectedRule.toString(); } + public List<ForagingRule> getCandidates() { + return candidates; + } + } --- a/src/main/java/edu/asu/commons/foraging/model/GroupDataModel.java Sat Oct 01 21:44:39 2011 -0700 +++ b/src/main/java/edu/asu/commons/foraging/model/GroupDataModel.java Sat Oct 01 21:49:06 2011 -0700 @@ -68,9 +68,7 @@ private EnforcementMechanism activeEnforcementMechanism = EnforcementMechanism.NONE; private SanctionMechanism activeSanctionMechanism = SanctionMechanism.NONE; private RegulationData activeRegulation; - - private Map<ForagingRule, Integer> ruleTallyMap = new HashMap<ForagingRule, Integer>(); - + private List<ClientData> waitingMonitors; private ClientData activeMonitor; @@ -79,6 +77,8 @@ private ArrayList<RegulationData> submittedRegulations = new ArrayList<RegulationData>(); + private ForagingRule selectedRule; + public GroupDataModel(ServerDataModel serverDataModel) { this(serverDataModel, nextGroupId++); } @@ -771,7 +771,7 @@ return serverDataModel.getEventChannel(); } - public ForagingRule generateSelectedRule() { + public List<ForagingRule> generateSelectedRule() { Map<ForagingRule, Integer> tallyMap = new HashMap<ForagingRule, Integer>(); for (ClientData client: clients.values()) { ForagingRule rule = client.getVotedRule(); @@ -802,8 +802,12 @@ // getLogger().info("tally map is: " + tallyMap); getLogger().info("picking first rule from " + selectedRules); Collections.shuffle(selectedRules); - return selectedRules.get(0); - + selectedRule = selectedRules.get(0); + return selectedRules; + } + + public ForagingRule getSelectedRule() { + return selectedRule; } } --- a/src/main/java/edu/asu/commons/foraging/server/ForagingServer.java Sat Oct 01 21:44:39 2011 -0700 +++ b/src/main/java/edu/asu/commons/foraging/server/ForagingServer.java Sat Oct 01 21:49:06 2011 -0700 @@ -385,10 +385,11 @@ if (votesReceived >= clients.size()) { // calculate votes for (GroupDataModel group: serverDataModel.getGroups()) { - ForagingRule selectedRule = group.generateSelectedRule(); + List<ForagingRule> candidates = group.generateSelectedRule(); + ForagingRule selectedRule = group.getSelectedRule(); for (Identifier id: group.getClientIdentifiers()) { - sendFacilitatorMessage("Group " + group + " selected " + selectedRule); - transmit(new RuleSelectedUpdateEvent(id, selectedRule)); + sendFacilitatorMessage("Group " + group + " selected " + selectedRule + " from candidate set: " + candidates); + transmit(new RuleSelectedUpdateEvent(id, selectedRule, candidates)); } } Repository URL: https://bitbucket.org/virtualcommons/foraging/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email. |