[virtualcommons-svn] commit/foraging: 4 new changesets
Status: Beta
Brought to you by:
alllee
From: Bitbucket <com...@bi...> - 2012-01-17 08:39:18
|
4 new commits in foraging: https://bitbucket.org/virtualcommons/foraging/changeset/603fec679005/ changeset: 603fec679005 user: alllee date: 2012-01-17 07:58:43 summary: server now signals facilitator and clients when trust game results are available affected #: 3 files diff -r 12876cd1bd8f3d434698704b527d1a37c530e3ee -r 603fec679005f2acac145e7a06d0ac300934bc1d src/main/java/edu/asu/commons/foraging/event/TrustGameResultsClientEvent.java --- a/src/main/java/edu/asu/commons/foraging/event/TrustGameResultsClientEvent.java +++ b/src/main/java/edu/asu/commons/foraging/event/TrustGameResultsClientEvent.java @@ -10,6 +10,7 @@ private static final long serialVersionUID = -9129989958983083574L; private final ClientData clientData; + public TrustGameResultsClientEvent(ClientData clientData, String log) { super(clientData.getId(), log); this.clientData = clientData; diff -r 12876cd1bd8f3d434698704b527d1a37c530e3ee -r 603fec679005f2acac145e7a06d0ac300934bc1d src/main/java/edu/asu/commons/foraging/facilitator/ReplayControlPanel.java --- a/src/main/java/edu/asu/commons/foraging/facilitator/ReplayControlPanel.java +++ b/src/main/java/edu/asu/commons/foraging/facilitator/ReplayControlPanel.java @@ -19,7 +19,7 @@ import edu.asu.commons.event.EventChannelFactory; import edu.asu.commons.event.PersistableEvent; -import edu.asu.commons.experiment.Persister; +import edu.asu.commons.experiment.IPersister; import edu.asu.commons.foraging.conf.RoundConfiguration; import edu.asu.commons.foraging.conf.ServerConfiguration; import edu.asu.commons.foraging.event.AddClientEvent; @@ -87,7 +87,7 @@ * Initializes the replay control panel with a directory containing a persisted experiment run. * @param replayFilePath */ - public void init(File replayFilePath, Persister<ServerConfiguration, RoundConfiguration> persister) { + public void init(File replayFilePath, IPersister<ServerConfiguration, RoundConfiguration> persister) { this.replayFile = replayFilePath; replayExperimentFilePath.setText(replayFile.getAbsolutePath()); replayRoundThread = new ReplayRoundThread(persister); @@ -244,7 +244,7 @@ private volatile PersistableEvent currentPersistableEvent; - public ReplayRoundThread(Persister<ServerConfiguration, RoundConfiguration> persister) { + public ReplayRoundThread(IPersister<ServerConfiguration, RoundConfiguration> persister) { this.actions = new ArrayList<PersistableEvent>(persister.getActions()); // FIXME: provide data model restore functionality in persister // this.serverDataModel = persister.restoreInitialGameState(); diff -r 12876cd1bd8f3d434698704b527d1a37c530e3ee -r 603fec679005f2acac145e7a06d0ac300934bc1d 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 @@ -30,6 +30,8 @@ import edu.asu.commons.event.SetConfigurationEvent; import edu.asu.commons.event.SocketIdentifierUpdateRequest; import edu.asu.commons.experiment.AbstractExperiment; +import edu.asu.commons.experiment.IPersister; +import edu.asu.commons.experiment.Persister; import edu.asu.commons.experiment.StateMachine; import edu.asu.commons.foraging.conf.RoundConfiguration; import edu.asu.commons.foraging.conf.ServerConfiguration; @@ -114,7 +116,7 @@ private StateMachine stateMachine = new ForagingStateMachine(); - private ForagingPersister persister; + private Persister<ServerConfiguration, RoundConfiguration> persister; private volatile int numberOfSubmittedQuizzes; private volatile int numberOfCompletedSanctions; @@ -643,7 +645,6 @@ @Override public void handle(TrustGameSubmissionRequest request) { if (getCurrentRoundConfiguration().isTrustGameEnabled()) { - // basic sanity check ClientData clientData = clients.get(request.getId()); clientData.setTrustGamePlayerOneAmountToKeep(request.getPlayerOneAmountToKeep()); clientData.setTrustGamePlayerTwoAmountsToKeep(request.getPlayerTwoAmountsToKeep()); @@ -652,7 +653,9 @@ numberOfSubmissions++; sendFacilitatorMessage(String.format("Received trust game submission %s (%d total)", request, numberOfSubmissions)); } - // FIXME: groups have not been assigned in the transition between practice round and this round.. + else { + warnFacilitator("Received trust game submission request but trust game wasn't enabled: " + request); + } if (numberOfSubmissions >= clients.size()) { // once all clients have submitted their decisions, execute the trust game. processTrustGame(); @@ -717,8 +720,7 @@ trustGameResult)); } } - // FIXME: update facilitator AND clients if it is the last round of the experiment - transmit(new TrustGameResultsFacilitatorEvent(facilitatorId, serverDataModel.getClientDataMap(), allTrustGameResults)); + transmitAndStore(new TrustGameResultsFacilitatorEvent(facilitatorId, serverDataModel.getClientDataMap(), allTrustGameResults)); } protected boolean isReadyToStartRound() { @@ -768,6 +770,13 @@ transmit(new FacilitatorMessageEvent(facilitatorId, message)); } } + + private void warnFacilitator(String message) { + logger.warning(message); + if (facilitatorId != null) { + transmit(new FacilitatorMessageEvent(facilitatorId, "!. " + message)); + } + } // FIXME: remove Dispatcher reference if it's unused. public void execute(Dispatcher dispatcher) { @@ -1043,4 +1052,10 @@ server.start(); server.repl(); } + + @Override + public IPersister<ServerConfiguration, RoundConfiguration> getPersister() { + return persister; + } + } https://bitbucket.org/virtualcommons/foraging/changeset/e454c3ee8f4f/ changeset: e454c3ee8f4f user: alllee date: 2012-01-17 09:36:07 summary: fixing path in template test affected #: 1 file diff -r 603fec679005f2acac145e7a06d0ac300934bc1d -r e454c3ee8f4fcf5679b97ef686fa566fd5ca4afb src/test/java/edu/asu/commons/foraging/conf/RoundConfigurationTest.java --- a/src/test/java/edu/asu/commons/foraging/conf/RoundConfigurationTest.java +++ b/src/test/java/edu/asu/commons/foraging/conf/RoundConfigurationTest.java @@ -14,7 +14,7 @@ @Before public void setUp() { - ServerConfiguration serverConfiguration = new ServerConfiguration("configuration/indiana-experiments/fall-2011/pretest"); + ServerConfiguration serverConfiguration = new ServerConfiguration("configuration/indiana-experiments/2011/vote-punish"); roundConfiguration = serverConfiguration.getAllParameters().get(4); } https://bitbucket.org/virtualcommons/foraging/changeset/57266c20ec10/ changeset: 57266c20ec10 user: alllee date: 2012-01-17 09:37:13 summary: fixing failing test usage of generateVotingResults and minor test coverage additions affected #: 1 file diff -r e454c3ee8f4fcf5679b97ef686fa566fd5ca4afb -r 57266c20ec10f43300ca88a52fed5ea331d82b9d src/test/java/edu/asu/commons/foraging/model/GroupDataModelTest.java --- a/src/test/java/edu/asu/commons/foraging/model/GroupDataModelTest.java +++ b/src/test/java/edu/asu/commons/foraging/model/GroupDataModelTest.java @@ -1,9 +1,12 @@ package edu.asu.commons.foraging.model; -import java.util.ArrayList; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + import java.util.Arrays; import java.util.Collections; import java.util.List; +import java.util.Map; import org.junit.Before; import org.junit.Test; @@ -11,7 +14,6 @@ import edu.asu.commons.foraging.conf.RoundConfiguration; import edu.asu.commons.foraging.rules.ForagingRule; import edu.asu.commons.net.Identifier; -import static org.junit.Assert.*; public class GroupDataModelTest { @@ -39,7 +41,9 @@ data.setVotedRule(rule); } // verify that this is the rule in place. - assertEquals(rule, group.generateVotingResults()); + Map<ForagingRule, Integer> votingResults = group.generateVotingResults(); + assertEquals(1, votingResults.size()); + assertEquals(rule, group.getSelectedRule()); } } } @@ -59,7 +63,12 @@ ForagingRule votedRule = rules.get(index); data.setVotedRule(votedRule); } - assertTrue(tieBreakerRules.contains(group.generateVotingResults())); + Map<ForagingRule, Integer> votingResults = group.generateVotingResults(); + assertEquals("There should be 3 rules voted on, total" + votingResults, 3, votingResults.size()); + for (ForagingRule tieBreaker: tieBreakerRules) { + assertEquals(2, votingResults.get(tieBreaker).intValue()); + } + assertTrue(tieBreakerRules.contains(group.getSelectedRule())); } } https://bitbucket.org/virtualcommons/foraging/changeset/30069402c6a0/ changeset: 30069402c6a0 user: alllee date: 2012-01-17 09:38:50 summary: trust game results now properly update the facilitator payment screen. refactored usage of RoundConfiguration and debriefing display. affected #: 6 files diff -r 57266c20ec10f43300ca88a52fed5ea331d82b9d -r 30069402c6a05dd6b4d62463a8aba1c362f3e103 src/main/java/edu/asu/commons/foraging/conf/RoundConfiguration.java --- a/src/main/java/edu/asu/commons/foraging/conf/RoundConfiguration.java +++ b/src/main/java/edu/asu/commons/foraging/conf/RoundConfiguration.java @@ -11,7 +11,6 @@ import java.util.concurrent.TimeUnit; import org.stringtemplate.v4.ST; -import org.stringtemplate.v4.STGroupString; import edu.asu.commons.conf.ExperimentRoundParameters; import edu.asu.commons.foraging.graphics.Point3D; @@ -759,7 +758,11 @@ @Override public String toString() { List<RoundConfiguration> allParameters = getParentConfiguration().getAllParameters(); - return String.format("Round %d of %d\n\t%s", allParameters.indexOf(this) + 1, allParameters.size(), getProperties()); + return String.format("Round %d of %d", allParameters.indexOf(this) + 1, allParameters.size()); + } + + public String fullStatus() { + return toString() + "\n\t" + getProperties(); } public String getQuizResults(List<String> incorrectQuestionNumbers, Map<Object, Object> actualAnswers) { @@ -799,4 +802,9 @@ template.add("clientDataList", serverDataModel.getClientDataMap().values()); return template.render(); } + + // returns the next round configuration without advancing the pointer in ServerConfiguration + public RoundConfiguration nextRound() { + return getParentConfiguration().getNextRoundConfiguration(); + } } diff -r 57266c20ec10f43300ca88a52fed5ea331d82b9d -r 30069402c6a05dd6b4d62463a8aba1c362f3e103 src/main/java/edu/asu/commons/foraging/conf/ServerConfiguration.java --- a/src/main/java/edu/asu/commons/foraging/conf/ServerConfiguration.java +++ b/src/main/java/edu/asu/commons/foraging/conf/ServerConfiguration.java @@ -112,6 +112,11 @@ public double getDollarsPerToken() { return DEFAULT_DOLLARS_PER_TOKEN; } + + public String getFinalRoundFacilitatorInstructions() { + return assistant.getProperty("facilitator-payment-instructions", + "<h3>The experiment has ended and participant payments are listed above. We recommend that you copy and paste it into a text editor for your records.</h3>"); + } public String getFacilitatorDebriefing() { return assistant.getProperty("facilitator-debriefing"); diff -r 57266c20ec10f43300ca88a52fed5ea331d82b9d -r 30069402c6a05dd6b4d62463a8aba1c362f3e103 src/main/java/edu/asu/commons/foraging/event/TrustGameResultsFacilitatorEvent.java --- a/src/main/java/edu/asu/commons/foraging/event/TrustGameResultsFacilitatorEvent.java +++ b/src/main/java/edu/asu/commons/foraging/event/TrustGameResultsFacilitatorEvent.java @@ -1,10 +1,9 @@ package edu.asu.commons.foraging.event; import java.util.List; -import java.util.Map; import edu.asu.commons.event.AbstractPersistableEvent; -import edu.asu.commons.foraging.model.ClientData; +import edu.asu.commons.foraging.model.ServerDataModel; import edu.asu.commons.net.Identifier; /** @@ -14,12 +13,12 @@ private static final long serialVersionUID = 5834548819829135618L; private List<String> allTrustGameResults; - private Map<Identifier, ClientData> clientDataMap; + private ServerDataModel serverDataModel; public TrustGameResultsFacilitatorEvent(Identifier facilitatorId, - Map<Identifier, ClientData> clientDataMap, List<String> allTrustGameResults) { + ServerDataModel serverDataModel, List<String> allTrustGameResults) { super(facilitatorId); this.allTrustGameResults = allTrustGameResults; - this.clientDataMap = clientDataMap; + this.serverDataModel = serverDataModel; } public List<String> getAllTrustGameResults() { return allTrustGameResults; @@ -27,11 +26,12 @@ public void setAllTrustGameResults(List<String> allTrustGameResults) { this.allTrustGameResults = allTrustGameResults; } - public Map<Identifier, ClientData> getClientDataMap() { - return clientDataMap; + public ServerDataModel getServerDataModel() { + return serverDataModel; } - public void setClientDataMap(Map<Identifier, ClientData> clientDataMap) { - this.clientDataMap = clientDataMap; + public void setServerDataModel(ServerDataModel serverDataModel) { + this.serverDataModel = serverDataModel; } + } diff -r 57266c20ec10f43300ca88a52fed5ea331d82b9d -r 30069402c6a05dd6b4d62463a8aba1c362f3e103 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 @@ -26,6 +26,7 @@ import edu.asu.commons.foraging.event.ShowTrustGameRequest; import edu.asu.commons.foraging.event.ShowVoteScreenRequest; import edu.asu.commons.foraging.event.ShowVotingInstructionsRequest; +import edu.asu.commons.foraging.event.TrustGameResultsFacilitatorEvent; import edu.asu.commons.foraging.event.TrustGameSubmissionEvent; import edu.asu.commons.foraging.model.ServerDataModel; @@ -50,12 +51,17 @@ public Facilitator(ServerConfiguration configuration) { super(configuration); addEventProcessor(new EventTypeProcessor<SetConfigurationEvent>(SetConfigurationEvent.class) { - public void handle(SetConfigurationEvent event) { RoundConfiguration configuration = (RoundConfiguration) event.getParameters(); setServerConfiguration(configuration.getParentConfiguration()); } }); + addEventProcessor(new EventTypeProcessor<TrustGameResultsFacilitatorEvent>(TrustGameResultsFacilitatorEvent.class){ + @Override + public void handle(TrustGameResultsFacilitatorEvent event) { + facilitatorWindow.updateTrustGame(event); + } + }); addEventProcessor(new EventTypeProcessor<FacilitatorUpdateEvent>(FacilitatorUpdateEvent.class) { public void handle(FacilitatorUpdateEvent event) { @@ -179,10 +185,6 @@ return facilitatorWindow; } - public ServerDataModel getServerGameState() { - return serverDataModel; - } - public void setRoundParameters( List<RoundConfiguration> roundConfiguration) { getServerConfiguration().setAllParameters(roundConfiguration); @@ -220,7 +222,7 @@ return getServerConfiguration().getCurrentParameters(); } - public void setServerGameState(ServerDataModel serverGameState) { + public void setServerDataModel(ServerDataModel serverGameState) { this.serverDataModel = serverGameState; } diff -r 57266c20ec10f43300ca88a52fed5ea331d82b9d -r 30069402c6a05dd6b4d62463a8aba1c362f3e103 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 @@ -5,8 +5,6 @@ import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; -import java.util.Arrays; -import java.util.List; import java.util.Map; import java.util.TreeSet; @@ -21,12 +19,13 @@ import javax.swing.text.BadLocationException; import edu.asu.commons.foraging.conf.RoundConfiguration; -import edu.asu.commons.foraging.conf.ServerConfiguration; 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.net.Identifier; import edu.asu.commons.ui.HtmlEditorPane; import edu.asu.commons.ui.UserInterfaceUtils; @@ -61,8 +60,11 @@ private JMenuItem startChatMenuItem; private JMenuItem showTrustGameMenuItem; - private JMenuItem showVotingInstructionsMenuItem; + @SuppressWarnings("unused") + private JMenuItem showVotingInstructionsMenuItem; + @SuppressWarnings("unused") private JMenuItem showVoteScreenMenuItem; + @SuppressWarnings("unused") private JMenuItem showSurveyInstructionsMenuItem; private HtmlEditorPane messageEditorPane; @@ -265,7 +267,7 @@ repaint(); } - // FXIME: get rid of duplication here & displayDebriefing.. + // FIXME: get rid of duplication here & displayDebriefing.. public void updateDebriefing(FacilitatorSanctionUpdateEvent event) { Map<Identifier, ClientData> clientDataMap = event.getClientDataMap(); StringBuilder buffer = new StringBuilder(); @@ -291,59 +293,33 @@ informationEditorPane.setText(buffer.toString()); } - public void displayDebriefing(FacilitatorEndRoundEvent event) { - // FIXME: use StringTemplate instead - -// Map<Identifier, ClientData> clientDataMap = event.getClientDataMap(); - // this is the round that was just played. - RoundConfiguration roundConfiguration = facilitator.getCurrentRoundConfiguration(); - System.out.println("Displaying debriefing for round " + roundConfiguration); - instructionsBuilder = new StringBuilder(roundConfiguration.generateFacilitatorDebriefing(event.getServerDataModel())); -// instructionsBuilder = new StringBuilder(); - -// instructionsBuilder.append(String.format("<h3>%s Results</h3>", roundConfiguration.isPracticeRound() ? "Practice round" : "Round " + roundConfiguration.getRoundNumber())); -// List<String> headers = Arrays.asList("Participant", "Current tokens", "Current income", "Quiz earnings", "Trust game earnings", "Total income"); -// instructionsBuilder.append("<table><thead>"); -// for (String header : headers) { -// instructionsBuilder.append("<th>").append(header).append("</th>"); -// } -// instructionsBuilder.append("</thead><tbody>"); -// TreeSet<Identifier> orderedSet = new TreeSet<Identifier>(clientDataMap.keySet()); -// for (Identifier clientId : orderedSet) { -// ClientData data = clientDataMap.get(clientId); -// instructionsBuilder.append(String.format( -// "<tr><td>%s</td>" + -// "<td align='center'>%d</td>" + -// "<td align='center'>$%3.2f</td>" + -// "<td align='center'>$%3.2f</td>" + -// "<td align='center'>$%3.2f</td>" + -// "<td align='center'>$%3.2f</td>" + -// "</tr>", -// clientId.toString(), -// data.getCurrentTokens(), -// getIncome(data.getCurrentTokens()), -// getQuizEarnings(data), -// data.getTrustGameEarnings(), -// getTotalIncome(data))); -// } -// instructionsBuilder.append("</tbody></table><hr>"); -// if (event.isLastRound()) { -// instructionsBuilder.append("<h2><font color='blue'>The experiment is over. Please prepare payments.</font></h2>"); -// } - + public void displayDebriefing(ServerDataModel serverDataModel) { + RoundConfiguration roundConfiguration = serverDataModel.getRoundConfiguration(); + System.err.println("Displaying debriefing: " + roundConfiguration); + instructionsBuilder = new StringBuilder(roundConfiguration.generateFacilitatorDebriefing(serverDataModel)); showInstructionsMenuItem.setEnabled(true); stopRoundMenuItem.setEnabled(false); - } - - private double getTotalIncome(ClientData data) { - ServerConfiguration serverConfiguration = facilitator.getServerConfiguration(); - double quizEarnings = getQuizEarnings(data); - double trustGameEarnings = data.getTrustGameIncome(); - return data.getTotalIncome() + serverConfiguration.getShowUpPayment() + quizEarnings + trustGameEarnings; - } - - private double getQuizEarnings(ClientData data) { - return data.getCorrectQuizAnswers() * facilitator.getServerConfiguration().getQuizCorrectAnswerReward(); + if (serverDataModel.isLastRound()) { + instructionsBuilder.append(facilitator.getServerConfiguration().getFinalRoundFacilitatorInstructions()); + } + else { + RoundConfiguration upcomingRound = roundConfiguration.nextRound(); + boolean showInstructionsNext = true; + if (upcomingRound.isTrustGameEnabled()) { + showTrustGameMenuItem.setEnabled(true); + instructionsBuilder.append("<h2>TRUST GAME: Run a trust game next. Click on the Round menu and select Show Trust Game</h2>"); + showInstructionsNext = false; + } + if (upcomingRound.isChatRoundEnabled()) { + startChatMenuItem.setEnabled(true); + instructionsBuilder.append("<h2>COMMUNICATION ROUND: There is a communication round configured to run at the end of this round. Click on the Round menu and select Start Chat Round</h2>"); + showInstructionsNext = false; + } + if (showInstructionsNext) { + instructionsBuilder.append("<h2>SHOW INSTRUCTIONS: Click on the Round menu and select Show instructions when ready.</h2>"); + } + } + informationEditorPane.setText(instructionsBuilder.toString()); } private double getIncome(float numTokens) { @@ -356,32 +332,15 @@ public void endRound(FacilitatorEndRoundEvent endRoundEvent) { System.out.println("Ending round: " + endRoundEvent); - displayDebriefing(endRoundEvent); - if (endRoundEvent.isLastRound()) { - facilitator.endExperiment(); - } - else { - // FIXME: doesn't allow for very first round to be chat-enabled or trust-game-enabled - RoundConfiguration roundConfiguration = facilitator.getServerConfiguration().nextRound(); - boolean showInstructionsNext = true; - if (roundConfiguration.isTrustGameEnabled()) { - showTrustGameMenuItem.setEnabled(true); - instructionsBuilder.append("<h2>TRUST GAME: Run a trust game next. Click on the Round menu and select Show Trust Game</h2>"); - showInstructionsNext = false; - } - if (roundConfiguration.isChatRoundEnabled()) { - startChatMenuItem.setEnabled(true); - instructionsBuilder.append("<h2>COMMUNICATION ROUND: There is a communication round configured to run at the end of this round. Click on the Round menu and select Start Chat Round</h2>"); - showInstructionsNext = false; - } - if (showInstructionsNext) { - instructionsBuilder.append("<h2>SHOW INSTRUCTIONS: Click on the Round menu and select Show instructions when ready.</h2>"); - } - informationEditorPane.setText(instructionsBuilder.toString()); - } + ServerDataModel serverDataModel = endRoundEvent.getServerDataModel(); + displayDebriefing(serverDataModel); completedQuizzes = 0; completedTrustGames = 0; } + + public void setRoundConfiguration(RoundConfiguration roundConfiguration) { + + } public void configureForReplay() { //Enable the replay menus @@ -394,7 +353,7 @@ public void addMessage(String message) { try { - messageEditorPane.getDocument().insertString(0, message + "\n", null); + messageEditorPane.getDocument().insertString(0, "-----\n" + message + "\n", null); } catch (BadLocationException exception) { exception.printStackTrace(); @@ -411,4 +370,12 @@ addMessage(String.format("%d completed trust games (%s)", completedTrustGames, event)); } + public void updateTrustGame(TrustGameResultsFacilitatorEvent event) { + addMessage("Received new trust game payment data, recalculating debriefing."); + displayDebriefing(event.getServerDataModel()); + for (String result: event.getAllTrustGameResults()) { + addMessage(result); + } + } + } diff -r 57266c20ec10f43300ca88a52fed5ea331d82b9d -r 30069402c6a05dd6b4d62463a8aba1c362f3e103 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 @@ -11,7 +11,6 @@ import java.util.List; import java.util.ListIterator; import java.util.Map; -import java.util.Random; import java.util.Set; import java.util.logging.FileHandler; import java.util.logging.Handler; @@ -129,8 +128,6 @@ private volatile boolean experimentStarted; - private Random random = new Random(); - // FIXME: add the ability to reconfigure an already instantiated server public ForagingServer() { this(new ServerConfiguration()); @@ -720,7 +717,7 @@ trustGameResult)); } } - transmitAndStore(new TrustGameResultsFacilitatorEvent(facilitatorId, serverDataModel.getClientDataMap(), allTrustGameResults)); + transmitAndStore(new TrustGameResultsFacilitatorEvent(facilitatorId, serverDataModel, allTrustGameResults)); } protected boolean isReadyToStartRound() { 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. |