[virtualcommons-svn] commit/foraging: 4 new changesets
Status: Beta
Brought to you by:
alllee
From: Bitbucket <com...@bi...> - 2012-02-28 00:59:44
|
4 new commits in foraging: https://bitbucket.org/virtualcommons/foraging/changeset/e181dac33964/ changeset: e181dac33964 user: alllee date: 2012-02-28 01:57:34 summary: adding support for multiple imposed strategies. the current model is to add the rules until you've got the distribution you want, and then send that to the server. affected #: 8 files diff -r ef5f971f25bc237f46102f7d8ac363eb9f421a5e -r e181dac33964d2d9000b5a798a4d27aaa215dd78 src/main/java/edu/asu/commons/foraging/client/ForagingClient.java --- a/src/main/java/edu/asu/commons/foraging/client/ForagingClient.java +++ b/src/main/java/edu/asu/commons/foraging/client/ForagingClient.java @@ -164,7 +164,7 @@ }); addEventProcessor(new EventTypeProcessor<ShowImposedStrategyRequest>(ShowImposedStrategyRequest.class) { @Override public void handle(ShowImposedStrategyRequest request) { - getGameWindow2D().showImposedStrategy(request); + getGameWindow2D().showImposedStrategy(request.getStrategy()); } }); addEventProcessor(new EventTypeProcessor<ShowVotingInstructionsRequest>(ShowVotingInstructionsRequest.class) { diff -r ef5f971f25bc237f46102f7d8ac363eb9f421a5e -r e181dac33964d2d9000b5a798a4d27aaa215dd78 src/main/java/edu/asu/commons/foraging/event/ImposeStrategyEvent.java --- a/src/main/java/edu/asu/commons/foraging/event/ImposeStrategyEvent.java +++ b/src/main/java/edu/asu/commons/foraging/event/ImposeStrategyEvent.java @@ -1,5 +1,7 @@ package edu.asu.commons.foraging.event; +import java.util.Map; + import edu.asu.commons.event.AbstractPersistableEvent; import edu.asu.commons.event.FacilitatorRequest; import edu.asu.commons.foraging.rules.Strategy; @@ -7,7 +9,7 @@ /** * $Id$ - * Notifies the server of a facilitator imposed strategy. + * Notifies the server of a facilitator imposed strategy distribution. * * @author alllee */ @@ -15,15 +17,20 @@ private static final long serialVersionUID = -7231412845435362871L; - private final Strategy strategy; + private final Map<Strategy, Integer> strategyDistribution; - public ImposeStrategyEvent(Identifier id, Strategy strategy) { - super(id, "Imposed strategy: " + strategy); - this.strategy = strategy; + public ImposeStrategyEvent(Identifier id, Map<Strategy, Integer> strategyDistribution) { + super(id, "Imposed strategy: " + strategyDistribution); + this.strategyDistribution = strategyDistribution; } - public Strategy getStrategy() { - return strategy; + public Map<Strategy, Integer> getStrategyDistribution() { + return strategyDistribution; + } + + @Override + public String toString() { + return "Imposed strategy distribution: " + strategyDistribution; } } diff -r ef5f971f25bc237f46102f7d8ac363eb9f421a5e -r e181dac33964d2d9000b5a798a4d27aaa215dd78 src/main/java/edu/asu/commons/foraging/event/ShowImposedStrategyRequest.java --- a/src/main/java/edu/asu/commons/foraging/event/ShowImposedStrategyRequest.java +++ b/src/main/java/edu/asu/commons/foraging/event/ShowImposedStrategyRequest.java @@ -1,26 +1,24 @@ package edu.asu.commons.foraging.event; import edu.asu.commons.event.AbstractEvent; -import edu.asu.commons.event.ShowRequest; import edu.asu.commons.foraging.rules.Strategy; import edu.asu.commons.net.Identifier; -public class ShowImposedStrategyRequest extends AbstractEvent implements ShowRequest<ShowImposedStrategyRequest> { +public class ShowImposedStrategyRequest extends AbstractEvent { private static final long serialVersionUID = -6046837892041909032L; - private final Strategy strategy; - + private Strategy strategy; + + public ShowImposedStrategyRequest(Identifier id) { + super(id); + } + public ShowImposedStrategyRequest(Identifier id, Strategy strategy) { super(id); this.strategy = strategy; } - @Override - public ShowImposedStrategyRequest clone(Identifier id) { - return new ShowImposedStrategyRequest(id, strategy); - } - public Strategy getStrategy() { return strategy; } diff -r ef5f971f25bc237f46102f7d8ac363eb9f421a5e -r e181dac33964d2d9000b5a798a4d27aaa215dd78 src/main/java/edu/asu/commons/foraging/facilitator/Facilitator.java --- a/src/main/java/edu/asu/commons/foraging/facilitator/Facilitator.java +++ b/src/main/java/edu/asu/commons/foraging/facilitator/Facilitator.java @@ -2,6 +2,7 @@ import java.awt.Dimension; import java.util.List; +import java.util.Map; import javax.swing.JFrame; import javax.swing.SwingUtilities; @@ -45,7 +46,7 @@ private ServerDataModel serverDataModel; private FacilitatorWindow facilitatorWindow; private boolean experimentRunning = false; - private Strategy imposedStrategy; + private Map<Strategy, Integer> imposedStrategyDistribution; private Facilitator() { this(new ServerConfiguration()); @@ -94,7 +95,8 @@ }); addEventProcessor(new EventTypeProcessor<FacilitatorSanctionUpdateEvent>(FacilitatorSanctionUpdateEvent.class) { public void handle(FacilitatorSanctionUpdateEvent event) { - facilitatorWindow.updateDebriefing(event); + System.err.println("Updating facilitator after post-round sanctioning."); + facilitatorWindow.displayDebriefing(event.getServerDataModel()); } }); addEventProcessor(new EventTypeProcessor<FacilitatorMessageEvent>(FacilitatorMessageEvent.class) { @@ -228,26 +230,22 @@ this.serverDataModel = serverGameState; } - public void sendImposeStrategyEvent(Strategy strategy) { - if (imposedStrategy == strategy) { - facilitatorWindow.addMessage(strategy + " has already been imposed."); - return; - } - this.imposedStrategy = strategy; - facilitatorWindow.addMessage("sending imposed strategy: " + strategy); - transmit(new ImposeStrategyEvent(getId(), strategy)); + public void sendImposeStrategyEvent(Map<Strategy, Integer> imposedStrategyDistribution) { + this.imposedStrategyDistribution = imposedStrategyDistribution; + facilitatorWindow.addMessage("sending imposed strategy: " + imposedStrategyDistribution); + transmit(new ImposeStrategyEvent(getId(), imposedStrategyDistribution)); } - public Strategy getImposedStrategy() { - return imposedStrategy; + public Map<Strategy, Integer> getImposedStrategyDistribution() { + return imposedStrategyDistribution; } public void sendShowImposedStrategy() { - if (imposedStrategy == null) { - facilitatorWindow.addMessage("No imposed strategy selected, please select a strategy first."); + if (imposedStrategyDistribution == null || imposedStrategyDistribution.isEmpty()) { + facilitatorWindow.addMessage("No imposed strategies selected, please select a strategy first."); return; } - transmit(new ShowImposedStrategyRequest(getId(), imposedStrategy)); + transmit(new ShowImposedStrategyRequest(getId())); } } diff -r ef5f971f25bc237f46102f7d8ac363eb9f421a5e -r e181dac33964d2d9000b5a798a4d27aaa215dd78 src/main/java/edu/asu/commons/foraging/facilitator/FacilitatorWindow.java --- a/src/main/java/edu/asu/commons/foraging/facilitator/FacilitatorWindow.java +++ b/src/main/java/edu/asu/commons/foraging/facilitator/FacilitatorWindow.java @@ -14,8 +14,8 @@ import java.io.Reader; import java.io.StringReader; import java.util.Arrays; +import java.util.HashMap; import java.util.Map; -import java.util.TreeSet; import javax.jnlp.ClipboardService; import javax.jnlp.ServiceManager; @@ -33,20 +33,21 @@ import edu.asu.commons.foraging.conf.RoundConfiguration; import edu.asu.commons.foraging.event.FacilitatorEndRoundEvent; -import edu.asu.commons.foraging.event.FacilitatorSanctionUpdateEvent; import edu.asu.commons.foraging.event.QuizCompletedEvent; import edu.asu.commons.foraging.event.TrustGameResultsFacilitatorEvent; import edu.asu.commons.foraging.event.TrustGameSubmissionEvent; -import edu.asu.commons.foraging.model.ClientData; import edu.asu.commons.foraging.model.ServerDataModel; +import edu.asu.commons.foraging.rules.Strategy; import edu.asu.commons.foraging.rules.iu.ForagingStrategy; -import edu.asu.commons.net.Identifier; import edu.asu.commons.ui.HtmlEditorPane; import edu.asu.commons.ui.UserInterfaceUtils; /** * $Id$ * + * The primary facilitator interface panel. + * + * @author Allen Lee */ @SuppressWarnings("unused") public class FacilitatorWindow extends JPanel { @@ -91,7 +92,8 @@ private ClipboardService clipboardService; - + private Map<Strategy, Integer> imposedStrategies = new HashMap<Strategy, Integer>(); + public FacilitatorWindow(Dimension dimension, Facilitator facilitator) { this.facilitator = facilitator; initGuiComponents(); @@ -202,7 +204,7 @@ facilitator.sendShowVoteScreenRequest(); } }); - imposeStrategyMenuItem = createMenuItem(menu, "Select imposed strategy", new ActionListener() { + imposeStrategyMenuItem = createMenuItem(menu, "Add imposed strategy", new ActionListener() { public void actionPerformed(ActionEvent e) { ForagingStrategy selection = (ForagingStrategy) JOptionPane.showInputDialog(FacilitatorWindow.this, "Select the strategy to impose:\n", "Impose Strategy", @@ -211,9 +213,26 @@ ForagingStrategy.values(), ForagingStrategy.NONE ); - facilitator.sendImposeStrategyEvent(selection); + Integer distribution = imposedStrategies.get(selection); + if (distribution == null) { + distribution = Integer.valueOf(0); + } + imposedStrategies.put(selection, Integer.valueOf(distribution + 1)); + addMessage("Current strategy distribution: " + imposedStrategies); } }); + createMenuItem(menu, "Clear imposed strategies", new ActionListener() { + public void actionPerformed(ActionEvent e) { + + imposedStrategies.clear(); + } + }); + createMenuItem(menu, "Send imposed strategy", new ActionListener() { + public void actionPerformed(ActionEvent e) { + facilitator.sendImposeStrategyEvent(imposedStrategies); + } + }); + createMenuItem(menu, "Show imposed strategy", new ActionListener() { public void actionPerformed(ActionEvent e) { facilitator.sendShowImposedStrategy(); @@ -329,32 +348,6 @@ repaint(); } - // FIXME: get rid of duplication here & displayDebriefing.. - public void updateDebriefing(FacilitatorSanctionUpdateEvent event) { - Map<Identifier, ClientData> clientDataMap = event.getClientDataMap(); - StringBuilder buffer = new StringBuilder(); - buffer.append("<h3>Updated Facilitator Debriefing:</h3>"); - buffer.append("<table><thead><th>Participant</th><th>Current tokens</th><th>Current Income</th><th>Total Income</th></thead><tbody>"); - TreeSet<Identifier> orderedSet = new TreeSet<Identifier>(clientDataMap.keySet()); - for (Identifier clientId : orderedSet) { - ClientData data = clientDataMap.get(clientId); - buffer.append(String.format( - "<tr><td>%s</td>" + - "<td align='center'>%d</td>" + - "<td align='center'>$%3.2f</td>" + - "<td align='center'>$%3.2f</td></tr>", - clientId.toString(), - data.getCurrentTokens(), - getIncome(data.getCurrentTokens()), - getIncome(data.getTotalTokens()))); - } - buffer.append("</tbody></table><hr>"); - if (event.isLastRound()) { - buffer.append("<h2><font color='blue'>The experiment is over. Please prepare payments.</font></h2>"); - } - informationEditorPane.setText(buffer.toString()); - } - public void displayDebriefing(ServerDataModel serverDataModel) { RoundConfiguration roundConfiguration = serverDataModel.getRoundConfiguration(); System.err.println("Displaying debriefing: " + roundConfiguration); @@ -384,14 +377,6 @@ informationEditorPane.setText(instructionsBuilder.toString()); } - private double getIncome(float numTokens) { - RoundConfiguration configuration = facilitator.getCurrentRoundConfiguration(); - if (configuration.isPracticeRound()) { - return 0.0f; - } - return configuration.getDollarsPerToken() * numTokens; - } - public void endRound(FacilitatorEndRoundEvent endRoundEvent) { System.out.println("Ending round: " + endRoundEvent); ServerDataModel serverDataModel = endRoundEvent.getServerDataModel(); @@ -400,10 +385,6 @@ completedTrustGames = 0; } - public void setRoundConfiguration(RoundConfiguration roundConfiguration) { - - } - public void configureForReplay() { // Enable the replay menus loadExperimentMenuItem.setEnabled(true); diff -r ef5f971f25bc237f46102f7d8ac363eb9f421a5e -r e181dac33964d2d9000b5a798a4d27aaa215dd78 src/main/java/edu/asu/commons/foraging/model/ServerDataModel.java --- a/src/main/java/edu/asu/commons/foraging/model/ServerDataModel.java +++ b/src/main/java/edu/asu/commons/foraging/model/ServerDataModel.java @@ -7,6 +7,7 @@ import java.text.NumberFormat; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashSet; @@ -59,8 +60,6 @@ private transient Random random = new Random(); private transient boolean dirty = false; - private Strategy imposedStrategy; - // Maps client Identifiers to the GroupDataModel that the client belongs to private final Map<Identifier, GroupDataModel> clientsToGroups = new HashMap<Identifier, GroupDataModel>(); @@ -239,6 +238,10 @@ public int getNumberOfClients() { return clientsToGroups.keySet().size(); } + + public int getNumberOfGroups() { + return getGroups().size(); + } public Set<GroupDataModel> getGroups() { return new LinkedHashSet<GroupDataModel>(clientsToGroups.values()); @@ -459,12 +462,25 @@ return new ArrayList<Identifier>(clientsToGroups.keySet()); } - - public Strategy getImposedStrategy() { - return imposedStrategy; - } - - public void setImposedStrategy(Strategy imposedStrategy) { - this.imposedStrategy = imposedStrategy; - } + + public List<GroupDataModel> allocateImposedStrategyDistribution(Map<Strategy, Integer> imposedStrategyDistribution) { + List<GroupDataModel> groups = getOrderedGroups(); + int numberOfGroups = groups.size(); + Collections.shuffle(groups); + Iterator<GroupDataModel> groupIterator = groups.iterator(); + int numberOfStrategies = 0; + for (Map.Entry<Strategy, Integer> entry : imposedStrategyDistribution.entrySet()) { + Strategy strategy = entry.getKey(); + int occurrences = entry.getValue(); + if (numberOfStrategies > numberOfGroups) { + throw new IllegalArgumentException("Invalid number of strategies : " + numberOfStrategies + " for " + numberOfGroups + " groups."); + } + for (int i = 0; i < occurrences; i++) { + GroupDataModel group = groupIterator.next(); + group.setImposedStrategy(strategy); + numberOfStrategies++; + } + } + return groups; + } } diff -r ef5f971f25bc237f46102f7d8ac363eb9f421a5e -r e181dac33964d2d9000b5a798a4d27aaa215dd78 src/main/java/edu/asu/commons/foraging/server/ForagingServer.java --- a/src/main/java/edu/asu/commons/foraging/server/ForagingServer.java +++ b/src/main/java/edu/asu/commons/foraging/server/ForagingServer.java @@ -61,6 +61,7 @@ import edu.asu.commons.foraging.event.RuleSelectedUpdateEvent; import edu.asu.commons.foraging.event.RuleVoteRequest; import edu.asu.commons.foraging.event.SanctionAppliedEvent; +import edu.asu.commons.foraging.event.ShowImposedStrategyRequest; import edu.asu.commons.foraging.event.SurveyIdSubmissionRequest; import edu.asu.commons.foraging.event.SynchronizeClientEvent; import edu.asu.commons.foraging.event.TrustGameResultsFacilitatorEvent; @@ -332,7 +333,7 @@ transmit(updateEvent); } // update the facilitator - transmit(new FacilitatorSanctionUpdateEvent(facilitatorId, clients, lastRound)); + transmit(new FacilitatorSanctionUpdateEvent(facilitatorId, serverDataModel)); Utils.notify(facilitatorSignal); numberOfCompletedSanctions = 0; } @@ -588,9 +589,32 @@ sendFacilitatorMessage("Ignoring request to impose strategy " + event); return; } - persister.store(event); - serverDataModel.setImposedStrategy(event.getStrategy()); - sendFacilitatorMessage("Server has imposed strategy: " + event.getStrategy()); + persister.store(event); + try { + List<GroupDataModel> groups = serverDataModel.allocateImposedStrategyDistribution(event.getStrategyDistribution()); + StringBuilder builder = new StringBuilder(); + for (GroupDataModel group: groups) { + builder.append('[').append(group).append(':').append(group.getImposedStrategy()).append(']'); + } + sendFacilitatorMessage("Server has imposed strategies for all groups: " + builder); + + } + catch (IllegalArgumentException exception) { + sendFacilitatorMessage("Couldn't allocate strategy distribution: " + event, exception); + } + } + }); + addEventProcessor(new EventTypeProcessor<ShowImposedStrategyRequest>(ShowImposedStrategyRequest.class) { + @Override + public void handle(ShowImposedStrategyRequest request) { + if (! request.getId().equals(facilitatorId)) { + sendFacilitatorMessage("Ignoring request to show imposed strategies from: " + request.getId()); + return; + } + for (Identifier id: clients.keySet()) { + transmit(new ShowImposedStrategyRequest(id, serverDataModel.getGroup(id).getImposedStrategy())); + } + sendFacilitatorMessage("Notified all groups of imposed strategy."); } }); addEventProcessor(new EventTypeProcessor<ShowRequest>(ShowRequest.class, true) { diff -r ef5f971f25bc237f46102f7d8ac363eb9f421a5e -r e181dac33964d2d9000b5a798a4d27aaa215dd78 src/main/java/edu/asu/commons/foraging/ui/GameWindow2D.java --- a/src/main/java/edu/asu/commons/foraging/ui/GameWindow2D.java +++ b/src/main/java/edu/asu/commons/foraging/ui/GameWindow2D.java @@ -54,10 +54,9 @@ import edu.asu.commons.foraging.event.QuizResponseEvent; import edu.asu.commons.foraging.event.RealTimeSanctionRequest; import edu.asu.commons.foraging.event.ResetTokenDistributionRequest; -import edu.asu.commons.foraging.event.ShowImposedStrategyRequest; -import edu.asu.commons.foraging.event.TrustGameResultsClientEvent; import edu.asu.commons.foraging.model.ClientData; import edu.asu.commons.foraging.model.Direction; +import edu.asu.commons.foraging.rules.Strategy; import edu.asu.commons.foraging.rules.iu.ForagingStrategy; import edu.asu.commons.net.Identifier; import edu.asu.commons.ui.HtmlEditorPane; @@ -888,18 +887,10 @@ showInstructionsPanel(); } - public void updateDebriefingWith(TrustGameResultsClientEvent event) { - // FIXME: currently hard coded to always show exit instructions in this case - // should change this to either have an explicit show exit instructions fired off by the - // facilitator or figure out a cleaner way of distinguishing between "we have to wait for - // some final calculation to occur before showing the final debriefing + exit instructions" - showDebriefing(event.getClientData(), true); - } - - public void showImposedStrategy(final ShowImposedStrategyRequest request) { + public void showImposedStrategy(final Strategy strategy) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { - setInstructions(dataModel.getRoundConfiguration().getImposedStrategyInstructions(request.getStrategy())); + setInstructions(dataModel.getRoundConfiguration().getImposedStrategyInstructions(strategy)); } }); } https://bitbucket.org/virtualcommons/foraging/changeset/570aceee8fb0/ changeset: 570aceee8fb0 user: alllee date: 2012-02-28 01:58:39 summary: replacing client data map with ServerDataModel so we can integrate it with displayDebriefing without changes. affected #: 1 file diff -r e181dac33964d2d9000b5a798a4d27aaa215dd78 -r 570aceee8fb08f54b13446d382ec8106b9ddc9aa src/main/java/edu/asu/commons/foraging/event/FacilitatorSanctionUpdateEvent.java --- a/src/main/java/edu/asu/commons/foraging/event/FacilitatorSanctionUpdateEvent.java +++ b/src/main/java/edu/asu/commons/foraging/event/FacilitatorSanctionUpdateEvent.java @@ -1,30 +1,26 @@ package edu.asu.commons.foraging.event; -import java.util.Map; - import edu.asu.commons.event.AbstractEvent; -import edu.asu.commons.foraging.model.ClientData; +import edu.asu.commons.foraging.model.ServerDataModel; import edu.asu.commons.net.Identifier; public class FacilitatorSanctionUpdateEvent extends AbstractEvent { private static final long serialVersionUID = 1L; - private final Map<Identifier, ClientData> clientDataMap; - private final boolean lastRound; + private final ServerDataModel serverDataModel; - public FacilitatorSanctionUpdateEvent(Identifier id, Map<Identifier, ClientData> clientDataMap, boolean lastRound) { + public FacilitatorSanctionUpdateEvent(Identifier id, ServerDataModel serverDataModel) { super(id); - this.clientDataMap = clientDataMap; - this.lastRound = lastRound; + this.serverDataModel = serverDataModel; } public boolean isLastRound() { - return lastRound; + return serverDataModel.isLastRound(); } - public Map<Identifier, ClientData> getClientDataMap() { - return clientDataMap; - } + public ServerDataModel getServerDataModel() { + return serverDataModel; + } } https://bitbucket.org/virtualcommons/foraging/changeset/6383bdd193b2/ changeset: 6383bdd193b2 user: alllee date: 2012-02-28 01:58:58 summary: adding imposed strategy to group data model affected #: 1 file diff -r 570aceee8fb08f54b13446d382ec8106b9ddc9aa -r 6383bdd193b2b09faf95334074853090d8691162 src/main/java/edu/asu/commons/foraging/model/GroupDataModel.java --- a/src/main/java/edu/asu/commons/foraging/model/GroupDataModel.java +++ b/src/main/java/edu/asu/commons/foraging/model/GroupDataModel.java @@ -25,6 +25,7 @@ import edu.asu.commons.foraging.event.SynchronizeClientEvent; import edu.asu.commons.foraging.event.TokenCollectedEvent; import edu.asu.commons.foraging.event.UnlockResourceRequest; +import edu.asu.commons.foraging.rules.Strategy; import edu.asu.commons.foraging.rules.iu.ForagingStrategy; import edu.asu.commons.foraging.ui.Circle; import edu.asu.commons.net.Identifier; @@ -68,6 +69,7 @@ private EnforcementMechanism activeEnforcementMechanism = EnforcementMechanism.NONE; private SanctionMechanism activeSanctionMechanism = SanctionMechanism.NONE; private RegulationData activeRegulation; + private Strategy imposedStrategy; private List<ClientData> waitingMonitors; @@ -813,4 +815,12 @@ return serverDataModel.getExperimentConfiguration(); } + public Strategy getImposedStrategy() { + return imposedStrategy; + } + + public void setImposedStrategy(Strategy imposedStrategy) { + this.imposedStrategy = imposedStrategy; + } + } https://bitbucket.org/virtualcommons/foraging/changeset/1450271cae0f/ changeset: 1450271cae0f user: alllee date: 2012-02-28 01:59:19 summary: removing defunct event, adding comments affected #: 2 files diff -r 6383bdd193b2b09faf95334074853090d8691162 -r 1450271cae0fcddcbcf17383d826f9b1155d776e src/main/java/edu/asu/commons/foraging/event/TrustGameResultsClientEvent.java --- a/src/main/java/edu/asu/commons/foraging/event/TrustGameResultsClientEvent.java +++ /dev/null @@ -1,31 +0,0 @@ -package edu.asu.commons.foraging.event; - -import edu.asu.commons.event.AbstractEvent; -import edu.asu.commons.foraging.model.ClientData; -import edu.asu.commons.foraging.model.GroupDataModel; -import edu.asu.commons.foraging.model.TrustGameResult; - -/** - * Used to update clients with their trust game log. - */ -public class TrustGameResultsClientEvent extends AbstractEvent { - private static final long serialVersionUID = -9129989958983083574L; - - private final ClientData clientData; - private final TrustGameResult trustGameResult; - - public TrustGameResultsClientEvent(ClientData clientData, TrustGameResult result) { - super(clientData.getId(), result.getLog()); - this.clientData = clientData; - this.trustGameResult = result; - } - public GroupDataModel getGroupDataModel() { - return clientData.getGroupDataModel(); - } - public ClientData getClientData() { - return clientData; - } - public TrustGameResult getTrustGameResult() { - return trustGameResult; - } -} diff -r 6383bdd193b2b09faf95334074853090d8691162 -r 1450271cae0fcddcbcf17383d826f9b1155d776e src/main/java/edu/asu/commons/foraging/event/TrustGameSubmissionEvent.java --- a/src/main/java/edu/asu/commons/foraging/event/TrustGameSubmissionEvent.java +++ b/src/main/java/edu/asu/commons/foraging/event/TrustGameSubmissionEvent.java @@ -3,6 +3,13 @@ import edu.asu.commons.event.AbstractEvent; import edu.asu.commons.net.Identifier; +/** + * $Id$ + * + * Server to facilitator notification that wraps a participant's TrustGameSubmissionRequest. + * @author alllee + * + */ public class TrustGameSubmissionEvent extends AbstractEvent { private static final long serialVersionUID = 1957461200448076811L; 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. |