[virtualcommons-svn] SF.net SVN: virtualcommons:[290] irrigation/trunk/src/main
Status: Beta
Brought to you by:
alllee
From: <al...@us...> - 2009-10-08 22:11:00
|
Revision: 290 http://virtualcommons.svn.sourceforge.net/virtualcommons/?rev=290&view=rev Author: alllee Date: 2009-10-08 22:10:47 +0000 (Thu, 08 Oct 2009) Log Message: ----------- More refactoring, getting rid of unused obscure equation variable names. Adding first cut at configuration files. More cleanup to come. Modified Paths: -------------- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ChartWindowPanel.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ChartWindowPanelTokenBandwidth.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ChatPanel.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/IrrigationClient.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/IrrigationGameWindow.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/MainIrrigationGameWindow.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/MiddleScorePanel.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/conf/RoundConfiguration.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/conf/ServerConfiguration.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/facilitator/IrrigationFacilitatorWindow.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/ClientData.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/GroupDataModel.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/IrrigationServer.java Added Paths: ----------- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/CloseGateEvent.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/OpenGateEvent.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/PauseEvent.java irrigation/trunk/src/main/resources/configuration/ irrigation/trunk/src/main/resources/configuration/asu-fall-2009/ irrigation/trunk/src/main/resources/configuration/asu-fall-2009/irrigation.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round0.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round1.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round10.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round11.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round12.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round13.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round14.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round15.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round16.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round17.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round18.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round19.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round2.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round20.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round21.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round3.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round4.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round5.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round6.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round7.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round8.xml irrigation/trunk/src/main/resources/configuration/asu-fall-2009/round9.xml Removed Paths: ------------- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/GateOpenedEvent.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/StartPausedEvent.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/StopDownloadEvent.java Property Changed: ---------------- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ActivitySummaryPanel.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ActivitySummaryPanelNew.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/Ball.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/CanalPanel.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/CanalPanelAnimation.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/CanalPanelAnimationNew.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ChartWindowPanel.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ChartWindowPanelTokenBandwidth.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ChatPanel.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ExperimentGameWindow.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/Gate.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/IrrigationClient.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/IrrigationClientGameState.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/IrrigationGameWindow.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/MainIrrigationGameWindow.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/MiddleScorePanel.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/MiddleWindowPanel.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/PieChart.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ScoreBoxPanel.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/conf/RoundConfiguration.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/conf/ServerConfiguration.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/BeginCommunicationRequest.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/ClientUpdateEvent.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/DisplaySubmitTokenRequest.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/EndRoundEvent.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/ExperimentDurationEvent.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/FacilitatorEndRoundEvent.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/FileDownloadCompleteEvent.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/FileDownloadedEvent.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/InstructionEnableRequest.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/InvestedTokensEvent.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/QuizCompletedEvent.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/RegistrationEvent.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/RoundStartedEvent.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/SendContributionStatusEvent.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/SendFileProgressEvent.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/ServerGameStateEvent.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/StartDownload.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/TransferFileInformationEvent.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/facilitator/IrrigationFacilitator.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/facilitator/IrrigationFacilitatorWindow.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/ClientData.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/GroupDataModel.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/IrrigationPersister.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/IrrigationServer.java irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/ServerDataModel.java Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ActivitySummaryPanel.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ActivitySummaryPanelNew.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/Ball.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/CanalPanel.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/CanalPanelAnimation.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/CanalPanelAnimationNew.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Modified: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ChartWindowPanel.java =================================================================== --- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ChartWindowPanel.java 2009-10-08 18:29:40 UTC (rev 289) +++ irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ChartWindowPanel.java 2009-10-08 22:10:47 UTC (rev 290) @@ -30,7 +30,7 @@ * Original Author: David Gilbert (for Object Refinery Limited); * Contributor(s): -; * - * $Id: ChartWindowPanel.java 127 2009-04-29 21:31:34Z alllee $ + * $Id$ * * Changes * ------- Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ChartWindowPanel.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Modified: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ChartWindowPanelTokenBandwidth.java =================================================================== --- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ChartWindowPanelTokenBandwidth.java 2009-10-08 18:29:40 UTC (rev 289) +++ irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ChartWindowPanelTokenBandwidth.java 2009-10-08 22:10:47 UTC (rev 290) @@ -30,7 +30,7 @@ * Original Author: David Gilbert (for Object Refinery Limited); * Contributor(s): -; * - * $Id: ChartWindowPanelTokenBandwidth.java 124 2009-04-23 17:56:22Z alllee $ + * $Id$ * * Changes * ------- Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ChartWindowPanelTokenBandwidth.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Modified: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ChatPanel.java =================================================================== --- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ChatPanel.java 2009-10-08 18:29:40 UTC (rev 289) +++ irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ChatPanel.java 2009-10-08 22:10:47 UTC (rev 290) @@ -46,7 +46,7 @@ * not linear. * * @author alllee - * @version $Revision: $ + * @version $Revision$ */ @SuppressWarnings("serial") Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ChatPanel.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ExperimentGameWindow.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/Gate.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Modified: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/IrrigationClient.java =================================================================== --- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/IrrigationClient.java 2009-10-08 18:29:40 UTC (rev 289) +++ irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/IrrigationClient.java 2009-10-08 22:10:47 UTC (rev 290) @@ -20,15 +20,15 @@ import edu.asu.commons.irrigation.events.BeginCommunicationRequest; import edu.asu.commons.irrigation.events.DisplaySubmitTokenRequest; import edu.asu.commons.irrigation.events.EndRoundEvent; -import edu.asu.commons.irrigation.events.GateOpenedEvent; +import edu.asu.commons.irrigation.events.OpenGateEvent; import edu.asu.commons.irrigation.events.InstructionEnableRequest; import edu.asu.commons.irrigation.events.InvestedTokensEvent; import edu.asu.commons.irrigation.events.RegistrationEvent; import edu.asu.commons.irrigation.events.RoundStartedEvent; import edu.asu.commons.irrigation.events.SendContributionStatusEvent; import edu.asu.commons.irrigation.events.SendFileProgressEvent; -import edu.asu.commons.irrigation.events.StartPausedEvent; -import edu.asu.commons.irrigation.events.StopDownloadEvent; +import edu.asu.commons.irrigation.events.PauseEvent; +import edu.asu.commons.irrigation.events.CloseGateEvent; import edu.asu.commons.irrigation.server.ClientData; import edu.asu.commons.net.ClientDispatcher; import edu.asu.commons.net.DispatcherFactory; @@ -143,7 +143,7 @@ public void transmitTokenContributed(int tokens) { InvestedTokensEvent transferTokenBandwidthEvent = new InvestedTokensEvent( getId(), tokens); - clientDispatcher.transmit(transferTokenBandwidthEvent); + transmit(transferTokenBandwidthEvent); } /** @@ -152,22 +152,21 @@ * * @param fileNo */ - public void startDownload(String fileNo) { - GateOpenedEvent startDownloadEvent = new GateOpenedEvent(getId()); - startDownloadEvent.setFileNumber(fileNo); - clientDispatcher.transmit(startDownloadEvent); + public void openGate(String fileNo) { + OpenGateEvent openGateEvent = new OpenGateEvent(getId()); + transmit(openGateEvent); } - public void stopDownload(String fileNo) { - StopDownloadEvent stopDownloadEvent = new StopDownloadEvent(getId()); - stopDownloadEvent.setFileNumber(fileNo); - clientDispatcher.transmit(stopDownloadEvent); + public void closeGate(String fileNo) { + CloseGateEvent closeGateEvent = new CloseGateEvent(getId()); + closeGateEvent.setFileNumber(fileNo); + transmit(closeGateEvent); } public void startPause(String fileNo) { - StartPausedEvent startPausedEvent = new StartPausedEvent(getId()); + PauseEvent startPausedEvent = new PauseEvent(getId()); startPausedEvent.setFileNumber(fileNo); - clientDispatcher.transmit(startPausedEvent); + transmit(startPausedEvent); } public void transmit(Event event) { Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/IrrigationClient.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/IrrigationClientGameState.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Modified: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/IrrigationGameWindow.java =================================================================== --- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/IrrigationGameWindow.java 2009-10-08 18:29:40 UTC (rev 289) +++ irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/IrrigationGameWindow.java 2009-10-08 22:10:47 UTC (rev 290) @@ -376,7 +376,7 @@ * time" + System.currentTimeMillis() / 1000); */ - client.startDownload(fileNo); + client.openGate(fileNo); disableAllFiles(); initEnable(); @@ -391,7 +391,7 @@ // TODO Auto-generated method stub int i; for (i = 0; i < TOTAL_CROPS_AVAILABLE; i++) { - if (isDownloaded[i] == false && fileClicked == false && !clientData.isDownloading()) { + if (isDownloaded[i] == false && fileClicked == false && !clientData.isGateOpen()) { (getFile(i)).setBackground(new Color(186, 226, 237)); (getFile(i)).setEnabled(true); } @@ -795,7 +795,7 @@ pauseDownload.setText("Pause"); // StopDownload.setEnabled(true); disableAllFiles(); - client.startDownload(fileNo); + client.openGate(fileNo); } } }); @@ -1072,7 +1072,7 @@ updateFileFinished(clientData.getDownloadListArray()); } else - if(clientData.isDownloading() || clientData.isPaused()){ + if(clientData.isGateOpen() || clientData.isPaused()){ disableAllFiles(); initEnable(); } Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/IrrigationGameWindow.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Modified: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/MainIrrigationGameWindow.java =================================================================== --- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/MainIrrigationGameWindow.java 2009-10-08 18:29:40 UTC (rev 289) +++ irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/MainIrrigationGameWindow.java 2009-10-08 22:10:47 UTC (rev 290) @@ -257,14 +257,14 @@ else{ scoreBoxPanel.update(clientData); } - if(clientData.isDownloading() == true){ + if(clientData.isGateOpen() == true){ upperPanel.openGates(clientData.getPriority()); } else if(clientData.isPaused() == true){ upperPanel.closeGates(clientData.getPriority()); } - if(clientData.isStopped() == true){ + if(clientData.isGateClosed() == true){ upperPanel.closeGates(clientData.getPriority()); } } Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/MainIrrigationGameWindow.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Modified: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/MiddleScorePanel.java =================================================================== --- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/MiddleScorePanel.java 2009-10-08 18:29:40 UTC (rev 289) +++ irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/MiddleScorePanel.java 2009-10-08 22:10:47 UTC (rev 290) @@ -164,7 +164,7 @@ filesDownloadedText.setText(new Integer(clientData.getCropsGrown()).toString()); tokensText.setText(new Integer(clientData.getTotalTokensEarned()).toString()); - if(clientData.isDownloading() == true && clientData.getAvailableFlowCapacity() > 0) + if(clientData.isGateOpen() == true && clientData.getAvailableFlowCapacity() > 0) fileLabel.setVisible(true); else fileLabel.setVisible(false); Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/MiddleScorePanel.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/MiddleWindowPanel.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/PieChart.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/client/ScoreBoxPanel.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Modified: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/conf/RoundConfiguration.java =================================================================== --- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/conf/RoundConfiguration.java 2009-10-08 18:29:40 UTC (rev 289) +++ irrigation/trunk/src/main/java/edu/asu/commons/irrigation/conf/RoundConfiguration.java 2009-10-08 22:10:47 UTC (rev 290) @@ -8,6 +8,15 @@ import edu.asu.commons.conf.ExperimentRoundParameters; import edu.asu.commons.util.Duration; +/** + * $Id$ + * + * Configuration parameters for a given round in the irrigation experiment. + * Provides reward functions, etc. + * + * @author <a href='mailto:All...@as...'>Allen Lee</a> + * @version $Rev$ + */ public class RoundConfiguration extends ExperimentRoundParameters.Base<ServerConfiguration> { private static final long serialVersionUID = -5053624886508752562L; @@ -22,15 +31,6 @@ super(resource); } - /** - * used to get the file Size given the File number from the current - * configuration file - */ - public int getFileSize(String fileNumber) { - // FIXME: lift constants - return getIntProperty(fileNumber, 250); - } - public int getMaximumClientFlowCapacity() { return getIntProperty("max-client-flow-capacity", 25); } @@ -47,12 +47,6 @@ return getIntProperty("max-canal-flow-capacity", 40); } - public double getFilesDownloadAwardConversion() { - // FIXME: change String key to something more meaningful - return getDoubleProperty("FilesDownload-Award-Conversion", 1.0d); - // return (double) Integer.parseInt(properties.getProperty("FilesDownload-Award-Conversion")); - } - public int getMaximumTokenContribution() { return getIntProperty("max-token-contribution", 10); } @@ -61,28 +55,29 @@ * returns maximum number of tokens that could have been contributed * @return */ - public int getMaximumTotalTokenContribution(){ + public int getMaximumTotalTokenContribution() { return getMaximumTokenContribution() * getClientsPerGroup(); } public int getMaximumInfrastructureEfficiency() { - return getIntProperty("maximum-infrastructure-efficiency", 100); + return getIntProperty("max-infrastructure-efficiency", 100); } - public int getBtmax() { - return getIntProperty("Btmax"); + public double getMaximumIndividualFlowCapacity() { + return getDoubleProperty("max-individual-flow-capacity", 20.0d); } public boolean isPracticeRound() { return getBooleanProperty("practice-round"); } + // FIXME: horrible hack.. figure out why this is here again. public boolean isSecondPracticeRound(){ return getBooleanProperty("second-practice-round",false); } public int getClientsPerGroup() { - return getIntProperty("clients-per-group", 0); + return getIntProperty("clients-per-group", 5); } /** @@ -150,30 +145,6 @@ return getIntProperty("communication-duration", 40); } - public double getAlpha() { - return getDoubleProperty("TBM-alpha", 0.0d); - } - - public double getA() { - return getDoubleProperty("TBM-a", 0.0d); - } - - public double getB() { - return getDoubleProperty("TBM-b", 0.0d); - } - - public double getAlphaAward() { - return getDoubleProperty("FAM-alpha", 0.0d); - } - - public double getA_award() { - return getDoubleProperty("FAM-a", 0.0d); - } - - public double getB_award() { - return getDoubleProperty("FAM-b", 0.0d); - } - /** * Returns the duration of the round in seconds. Set to default of 50 seconds per round. */ Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/conf/RoundConfiguration.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Modified: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/conf/ServerConfiguration.java =================================================================== --- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/conf/ServerConfiguration.java 2009-10-08 18:29:40 UTC (rev 289) +++ irrigation/trunk/src/main/java/edu/asu/commons/irrigation/conf/ServerConfiguration.java 2009-10-08 22:10:47 UTC (rev 290) @@ -7,7 +7,7 @@ import edu.asu.commons.conf.ExperimentConfiguration; /** - * $Id: ServerConfiguration.java 131 2009-04-30 01:52:21Z alllee $ + * $Id$ * * Contains the know-how for parsing and programmatically accessing the forager * server's configuration file properties. The forager server's config file @@ -23,7 +23,7 @@ * @author <a href='mailto:All...@as...'>Allen Lee</a> * @see edu.asu.csid.irrigation.RoundConfiguration, * edu.asu.csid.conf.ExperimentConfiguration - * @version $Revision: 131 $ + * @version $Revision$ */ public class ServerConfiguration extends ExperimentConfiguration.Base<RoundConfiguration> { @@ -34,8 +34,6 @@ private final static String DEFAULT_LOG_FILE_DESTINATION = "irrigation.log"; - //FIXME: can move this parameter to the configuration files - public ServerConfiguration() { super(); } @@ -57,9 +55,8 @@ } @Override - protected RoundConfiguration createConfiguration( - String roundConfigurationResource) { - return new RoundConfiguration(roundConfigurationResource); + protected RoundConfiguration createConfiguration(String roundConfigurationFile) { + return new RoundConfiguration(roundConfigurationFile); } @Override @@ -70,42 +67,42 @@ /** * getting the general welcome instructions * + * FIXME: Refactor this method. + * * @param instructionNumber * @param pagesTraversed * @return */ public String getGeneralInstructions(int instructionNumber, - int pagesTraversed,int clientPriority) { + int pagesTraversed, int clientPosition) { String position = ""; String undisruptedBandwidthInstruction = ""; - //System.out.println("Instruction Nnumber :"+instructionNumber+" Pages Traversed :"+pagesTraversed); if (instructionNumber != 11) { if (instructionNumber > pagesTraversed) { if (instructionNumber == 4) { //instructionNumber = getNewInstructionNumber(clientPriority); - position = "\n YOUR POSITION : "+getPosition(clientPriority); + position = "\n Your position : "+toPriorityString(clientPosition); } if(instructionNumber == 5 && isUndisruptedBandwidth()){ undisruptedBandwidthInstruction=assistant.getStringProperty("general-instructions"+"-undisruptedBandwidth"); } - - return (position+assistant.getStringProperty("general-instructions" - + instructionNumber - )+undisruptedBandwidthInstruction+assistant - .getStringProperty("general-instructionsq" - + instructionNumber)); - } else { + return (position + + assistant.getStringProperty("general-instructions" + instructionNumber) + + undisruptedBandwidthInstruction + + assistant.getStringProperty("general-instructionsq" + instructionNumber)); + } + else { if (instructionNumber == 4) { //instructionNumber = getNewInstructionNumber(clientPriority); - position = "\n YOUR POSITION : "+getPosition(clientPriority); + position = "\n YOUR POSITION : "+toPriorityString(clientPosition); } if(instructionNumber == 5 && isUndisruptedBandwidth()){ undisruptedBandwidthInstruction=assistant.getStringProperty("general-instructions"+"-undisruptedBandwidth"); } - return position+assistant.getStringProperty("general-instructions" - + instructionNumber, - "<b>No instructions available for this round</b>")+undisruptedBandwidthInstruction; + return (position + + assistant.getStringProperty("general-instructions" + instructionNumber, "<b>No instructions available for this round</b>") + + undisruptedBandwidthInstruction); } } @@ -115,27 +112,33 @@ "<b>No instructions available for this round</b>"); } + + private final static String[] PRIORITY_STRINGS = { "A", "B", "C", "D", "E" }; - private String getPosition(int clientPriority) { - // TODO Auto-generated method stub - switch(clientPriority){ - case 0 : return "A"; - case 1 : return "B"; - case 2: return "C"; - case 3: return "D"; - case 4: return "E"; - } - return "Position not found"; + private String toPriorityString(int clientPriority) { + // bounds check + if (clientPriority >= 0 && clientPriority < PRIORITY_STRINGS.length) { + return PRIORITY_STRINGS[clientPriority]; + } +// +// switch(clientPriority){ +// case 0 : return "A"; +// case 1 : return "B"; +// case 2: return "C"; +// case 3: return "D"; +// case 4: return "E"; +// } + return "Position not found"; } //overriding method isLastRound - public boolean isLastRound(){ - System.out.println("The Current round Number is :"+getCurrentRoundNumber()); - if(getCurrentRoundNumber() == assistant.getIntProperty("number-of-rounds")-1) - return true; - else - return false; - } +// public boolean isLastRound(){ +// System.out.println("The Current round Number is :"+getCurrentRoundNumber()); +// if(getCurrentRoundNumber() == assistant.getIntProperty("number-of-rounds")-1) +// return true; +// else +// return false; +// } public boolean isUndisruptedBandwidth(){ if(assistant.getBooleanProperty("undisrupted-bandwidth")== true) @@ -143,26 +146,10 @@ return false; } - private int getNewInstructionNumber(int clientPriority) { - // TODO Auto-generated method stub - switch(clientPriority){ - case 0 : return 40; - - case 1: return 41; - - } - //FIXME: AT present just returning case 1 's case when clientPriority is 2,3,4. Need to change this. - if(clientPriority == 2 || clientPriority == 3 || clientPriority == 4){ - return 41; - } - return -1; + public double getShowUpPayment() { + return assistant.getDoubleProperty("showup-payment", 5.0d); } - public String getShowUpFees() { - // TODO Auto-generated method stub - return assistant.getStringProperty("showup-fees", "5"); - } - public Map<String, String> getQuizAnswers() { //System.out.println("I am in the beginning of getquiz"); Properties properties = assistant.getProperties(); Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/conf/ServerConfiguration.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/BeginCommunicationRequest.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/ClientUpdateEvent.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Copied: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/CloseGateEvent.java (from rev 288, irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/StopDownloadEvent.java) =================================================================== --- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/CloseGateEvent.java (rev 0) +++ irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/CloseGateEvent.java 2009-10-08 22:10:47 UTC (rev 290) @@ -0,0 +1,17 @@ +package edu.asu.commons.irrigation.events; + +import edu.asu.commons.net.Identifier; + +/** + * @author Sanket + * + */ +public class CloseGateEvent extends TransferFileInformationEvent { + + private static final long serialVersionUID = -6932559955912875464L; + + public CloseGateEvent(Identifier id) { + super(id); + } + +} Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/CloseGateEvent.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/DisplaySubmitTokenRequest.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/EndRoundEvent.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/ExperimentDurationEvent.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/FacilitatorEndRoundEvent.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/FileDownloadCompleteEvent.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/FileDownloadedEvent.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Deleted: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/GateOpenedEvent.java =================================================================== --- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/GateOpenedEvent.java 2009-10-08 18:29:40 UTC (rev 289) +++ irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/GateOpenedEvent.java 2009-10-08 22:10:47 UTC (rev 290) @@ -1,17 +0,0 @@ -package edu.asu.commons.irrigation.events; - -import edu.asu.commons.net.Identifier; - -/** - * @author Sanket - * - */ -public class GateOpenedEvent extends TransferFileInformationEvent { - - private static final long serialVersionUID = -4902131375099741851L; - - public GateOpenedEvent(Identifier id) { - super(id); - } - -} Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/InstructionEnableRequest.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/InvestedTokensEvent.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Copied: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/OpenGateEvent.java (from rev 288, irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/GateOpenedEvent.java) =================================================================== --- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/OpenGateEvent.java (rev 0) +++ irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/OpenGateEvent.java 2009-10-08 22:10:47 UTC (rev 290) @@ -0,0 +1,18 @@ +package edu.asu.commons.irrigation.events; + +import edu.asu.commons.event.AbstractPersistableEvent; +import edu.asu.commons.net.Identifier; + +/** + * + * + */ +public class OpenGateEvent extends AbstractPersistableEvent { + + private static final long serialVersionUID = -4902131375099741851L; + + public OpenGateEvent(Identifier id) { + super(id); + } + +} Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/OpenGateEvent.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Copied: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/PauseEvent.java (from rev 288, irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/StartPausedEvent.java) =================================================================== --- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/PauseEvent.java (rev 0) +++ irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/PauseEvent.java 2009-10-08 22:10:47 UTC (rev 290) @@ -0,0 +1,21 @@ +package edu.asu.commons.irrigation.events; + +import edu.asu.commons.net.Identifier; + + + +/** + * @author Sanket + * + */ +public class PauseEvent extends TransferFileInformationEvent { + + private static final long serialVersionUID = -6518246719469415026L; + + public PauseEvent(Identifier id) { + super(id); + } + + + +} Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/PauseEvent.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/QuizCompletedEvent.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/RegistrationEvent.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/RoundStartedEvent.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/SendContributionStatusEvent.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/SendFileProgressEvent.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/ServerGameStateEvent.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/StartDownload.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Deleted: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/StartPausedEvent.java =================================================================== --- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/StartPausedEvent.java 2009-10-08 18:29:40 UTC (rev 289) +++ irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/StartPausedEvent.java 2009-10-08 22:10:47 UTC (rev 290) @@ -1,21 +0,0 @@ -package edu.asu.commons.irrigation.events; - -import edu.asu.commons.net.Identifier; - - - -/** - * @author Sanket - * - */ -public class StartPausedEvent extends TransferFileInformationEvent { - - private static final long serialVersionUID = -6518246719469415026L; - - public StartPausedEvent(Identifier id) { - super(id); - } - - - -} Deleted: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/StopDownloadEvent.java =================================================================== --- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/StopDownloadEvent.java 2009-10-08 18:29:40 UTC (rev 289) +++ irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/StopDownloadEvent.java 2009-10-08 22:10:47 UTC (rev 290) @@ -1,17 +0,0 @@ -package edu.asu.commons.irrigation.events; - -import edu.asu.commons.net.Identifier; - -/** - * @author Sanket - * - */ -public class StopDownloadEvent extends TransferFileInformationEvent { - - private static final long serialVersionUID = -6932559955912875464L; - - public StopDownloadEvent(Identifier id) { - super(id); - } - -} Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/events/TransferFileInformationEvent.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/facilitator/IrrigationFacilitator.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Modified: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/facilitator/IrrigationFacilitatorWindow.java =================================================================== --- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/facilitator/IrrigationFacilitatorWindow.java 2009-10-08 18:29:40 UTC (rev 289) +++ irrigation/trunk/src/main/java/edu/asu/commons/irrigation/facilitator/IrrigationFacilitatorWindow.java 2009-10-08 22:10:47 UTC (rev 290) @@ -181,7 +181,7 @@ clientId.toString(), data.getTotalTokensEarned(), data.getTotalTokensEarned() * model.getCurrentConfiguration().getDollarsPerToken(), - data.getTotalTokens() * model.getCurrentConfiguration().getDollarsPerToken()+Double.parseDouble(facilitator.getConfiguration().getShowUpFees()))); + data.getTotalTokens() * model.getCurrentConfiguration().getDollarsPerToken()+ facilitator.getConfiguration().getShowUpPayment())); } builder.append("</tbody></table><hr>"); //FIXME: Could not understand how to evaluate .isLastRound(), hence using the Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/facilitator/IrrigationFacilitatorWindow.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Modified: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/ClientData.java =================================================================== --- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/ClientData.java 2009-10-08 18:29:40 UTC (rev 289) +++ irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/ClientData.java 2009-10-08 22:10:47 UTC (rev 290) @@ -20,7 +20,7 @@ * minus tokens subtracted by sanctioning others * * @author <a href='ano...@gm...'>Allen Lee</a>, Deepali Bhagvat - * @version $Revision: 131 $ + * @version $Revision$ */ public class ClientData implements Serializable { @@ -46,7 +46,7 @@ private int cropsGrown = 0; // maximum available bandwidth - private double maximumDeliveryBandwidth; + private double maximumIndividualFlowCapacity; /** * current download speed */ @@ -64,11 +64,8 @@ private boolean paused = false; - // FIXME: this is just the negation of downloading, we do not need two flags for this. - private boolean stopped = true; + private boolean gateOpen = false; - private boolean downloading = false; - public ClientData(Identifier id) { this.id = id; } @@ -77,12 +74,12 @@ return paused; } - public boolean isStopped(){ - return stopped; + public boolean isGateClosed(){ + return ! gateOpen; } - public boolean isDownloading(){ - return downloading; + public boolean isGateOpen(){ + return gateOpen; } // cap on the size of the entire stream (e.g,. 50 kbps) @@ -91,12 +88,12 @@ } // cap on the size of the stream that can be delivered to the client (e.g., 25 kbps) - public void setMaximumDeliveryBandwidth(double deliveryBandwidth){ - this.maximumDeliveryBandwidth = deliveryBandwidth; + public void setMaximumIndividualFlowCapacity(double deliveryBandwidth){ + this.maximumIndividualFlowCapacity = deliveryBandwidth; } - public double getMaximumDeliveryBandwidth(){ - return maximumDeliveryBandwidth; + public double getMaximumIndividualFlowCapacity(){ + return maximumIndividualFlowCapacity; } /** @@ -126,18 +123,6 @@ return fileNumber; } - /** - * Gets and sets the size of the file - * @param fileSize - */ - public void setFileSize(int fileSize){ - this.fileSize = fileSize; - } - - public double getFileSize(){ - return fileSize; - } - public double getPercentFileDownload(){ return percentFileDownloaded; } @@ -148,21 +133,23 @@ * that the users are allowed to do. */ - public void setStartDownload(){ - downloading = true; + public void openGate(){ + gateOpen = true; paused = false; - stopped = false; } public void setPaused(){ paused = true; - downloading = false; - stopped = false; + gateOpen = false; } + + public void unpause() { + paused = false; + gateOpen = true; + } - public void setStoppedDownloading(){ - stopped = true; - downloading = false; + public void closeGate(){ + gateOpen = false; paused = false; } @@ -197,7 +184,7 @@ */ public void reset() { resetFileInformation(); - setStoppedDownloading(); + closeGate(); contributedTokens = 0; //adding number of files to be downloaded = 0 per round cropsGrown = 0; @@ -235,7 +222,7 @@ public void init(double availableBandwidth) { resetFileInformation(); //maximumDeliveryBandwidth = getRoundConfiguration().getBtmax()/getRoundConfiguration().getClientsPerGroup(); - maximumDeliveryBandwidth = getRoundConfiguration().getBtmax()/2; + maximumIndividualFlowCapacity = getRoundConfiguration().getMaximumIndividualFlowCapacity(); //currentBandwidth = totalContributedBandwidth; this.availableFlowCapacity = availableBandwidth; } @@ -245,7 +232,7 @@ fileNumber = ""; downloadedFileSize = 0; percentFileDownloaded = 0; - setStoppedDownloading(); + closeGate(); } public void award() { @@ -310,7 +297,7 @@ *as processDownload function */ public void allocateFlowCapacity(double availableBandwidth) { - assert downloading; + assert gateOpen; fileDownloaded = false; incrementFileDownloadSize(); } Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/ClientData.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Modified: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/GroupDataModel.java =================================================================== --- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/GroupDataModel.java 2009-10-08 18:29:40 UTC (rev 289) +++ irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/GroupDataModel.java 2009-10-08 22:10:47 UTC (rev 290) @@ -192,10 +192,10 @@ public void allocateFlowCapacity(ClientData clientData) { - if (currentlyAvailableFlowCapacity >= clientData.getMaximumDeliveryBandwidth()) { - currentlyAvailableFlowCapacity -= clientData.getMaximumDeliveryBandwidth(); + if (currentlyAvailableFlowCapacity >= clientData.getMaximumIndividualFlowCapacity()) { + currentlyAvailableFlowCapacity -= clientData.getMaximumIndividualFlowCapacity(); // setAvailableBandwidth(clientData.getTotalContributedBandwidth() - clientData.getDeliveryBandwidth()); - clientData.setAvailableFlowCapacity(clientData.getMaximumDeliveryBandwidth()); + clientData.setAvailableFlowCapacity(clientData.getMaximumIndividualFlowCapacity()); } else { clientData.setAvailableFlowCapacity(currentlyAvailableFlowCapacity); Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/GroupDataModel.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/IrrigationPersister.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Modified: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/IrrigationServer.java =================================================================== --- irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/IrrigationServer.java 2009-10-08 18:29:40 UTC (rev 289) +++ irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/IrrigationServer.java 2009-10-08 22:10:47 UTC (rev 290) @@ -22,7 +22,7 @@ import edu.asu.commons.irrigation.events.DisplaySubmitTokenRequest; import edu.asu.commons.irrigation.events.EndRoundEvent; import edu.asu.commons.irrigation.events.FacilitatorEndRoundEvent; -import edu.asu.commons.irrigation.events.GateOpenedEvent; +import edu.asu.commons.irrigation.events.OpenGateEvent; import edu.asu.commons.irrigation.events.InstructionEnableRequest; import edu.asu.commons.irrigation.events.InvestedTokensEvent; import edu.asu.commons.irrigation.events.QuizCompletedEvent; @@ -30,8 +30,8 @@ import edu.asu.commons.irrigation.events.RoundStartedEvent; import edu.asu.commons.irrigation.events.SendContributionStatusEvent; import edu.asu.commons.irrigation.events.SendFileProgressEvent; -import edu.asu.commons.irrigation.events.StartPausedEvent; -import edu.asu.commons.irrigation.events.StopDownloadEvent; +import edu.asu.commons.irrigation.events.PauseEvent; +import edu.asu.commons.irrigation.events.CloseGateEvent; import edu.asu.commons.net.Dispatcher; import edu.asu.commons.net.Identifier; import edu.asu.commons.net.event.ConnectionEvent; @@ -39,12 +39,12 @@ import edu.asu.commons.util.Duration; /** - * $Id: IrrigationServer.java 129 2009-04-29 23:38:45Z alllee $ + * $Id$ * * Main entry point for the irrigation experiment server. * * @author Sanket Joshi, <a href='All...@as...'>Allen Lee</a> - * @version $Revision: 129 $ + * @version $Revision$ */ public class IrrigationServer extends AbstractExperiment<ServerConfiguration> { @@ -220,22 +220,19 @@ } } }); - addEventProcessor(new EventTypeProcessor<GateOpenedEvent>(GateOpenedEvent.class) { - public void handle(GateOpenedEvent event) { + addEventProcessor(new EventTypeProcessor<OpenGateEvent>(OpenGateEvent.class) { + public void handle(OpenGateEvent event) { ClientData clientData = clients.get(event.getId()); - String fileNumber = event.getFileNumber(); - clientData.setFileNumber(fileNumber); - clientData.setFileSize(getRoundConfiguration().getFileSize(fileNumber)); - clientData.setStartDownload(); + clientData.openGate(); } }); - addEventProcessor(new EventTypeProcessor<StopDownloadEvent>(StopDownloadEvent.class) { - public void handle(StopDownloadEvent event) { - clients.get(event.getId()).setStoppedDownloading(); + addEventProcessor(new EventTypeProcessor<CloseGateEvent>(CloseGateEvent.class) { + public void handle(CloseGateEvent event) { + clients.get(event.getId()).closeGate(); } }); - addEventProcessor(new EventTypeProcessor<StartPausedEvent>(StartPausedEvent.class) { - public void handle(StartPausedEvent event) { + addEventProcessor(new EventTypeProcessor<PauseEvent>(PauseEvent.class) { + public void handle(PauseEvent event) { clients.get(event.getId()).setPaused(); } }); @@ -298,12 +295,12 @@ if(clientData.getAvailableFlowCapacity()<=0 && getConfiguration().isUndisruptedBandwidth()){ clientData.init(group.getCurrentlyAvailableFlowCapacity()); } - if (clientData.isDownloading()) { + if (clientData.isGateOpen()) { //System.out.println("Downloading file"+clientData.getFileNumber()+"Current time"+System.currentTimeMillis()/1000); group.allocateFlowCapacity(clientData); } - else if (clientData.isStopped()) { + else if (clientData.isGateClosed()) { clientData.init(group.getCurrentlyAvailableFlowCapacity()); } else if (clientData.isPaused()) { Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/IrrigationServer.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Property changes on: irrigation/trunk/src/main/java/edu/asu/commons/irrigation/server/ServerDataModel.java ___________________________________________________________________ Added: svn:keywords + Date Id Revision Added: irrigation/trunk/src/main/resources/configuration/asu-fall-2009/irrigation.xml =================================================================== --- irrigation/trunk/src/main/resources/configuration/asu-fall-2009/irrigation.xml (rev 0) +++ irrigation/trunk/src/main/resources/configuration/asu-fall-2009/irrigation.xml 2009-10-08 22:10:47 UTC (rev 290) @@ -0,0 +1,620 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> +<properties> +<comment>Irrigation XML-ized experiment round configuration</comment> + +<!--<entry key="hostname">localhost</entry>--> +<entry key="hostname">localhost</entry> +<entry key="port">16001</entry> +<entry key="round0">round0.xml</entry> +<entry key="round1">round1.xml</entry> +<entry key="round2">round2.xml</entry> +<entry key="round3">round3.xml</entry> +<entry key="round4">round4.xml</entry> +<entry key="round5">round5.xml</entry> +<entry key="round6">round6.xml</entry> +<entry key="round7">round7.xml</entry> +<entry key="round8">round8.xml</entry> +<entry key="round9">round9.xml</entry> +<entry key="round10">round10.xml</entry> +<entry key="round11">round11.xml</entry> +<entry key="round12">round12.xml</entry> +<entry key="round13">round13.xml</entry> +<entry key="round14">round14.xml</entry> +<entry key="round15">round15.xml</entry> +<entry key="round16">round16.xml</entry> +<entry key="round17">round17.xml</entry> +<entry key="round18">round18.xml</entry> +<entry key="round19">round19.xml</entry> +<entry key="round20">round20.xml</entry> +<entry key="round21">round21.xml</entry> + + +<entry key="wait-for-participants">true</entry> +<entry key="number-of-rounds">22</entry> + +<entry key="undisrupted-bandwidth">true</entry> + +<entry key="q1">4</entry> +<entry key="q2">identity</entry> +<entry key="q3">49</entry> +<entry key="q4">76</entry> +<entry key="q5">4</entry> +<entry key="q6">5</entry> +<entry key="q7">25</entry> +<entry key="q8">4</entry> +<entry key="q9">25</entry> +<entry key="q10">30</entry> +<entry key="q11">1.50</entry> + + +<entry key="facilitator-instructions"> +<![CDATA[ +<h3>Facilitator Instructions</h3> +<p> +Welcome to the facilitator interface. This interface allows you to control +the experiment. You may only modify configuration parameters <b>before</b> +you start the experiment by selecting the Configuration menu. When all the +participants are ready to begin the experiment, you can start the experiment +by selecting Experiment -> Start. After a round has been completed you +will be able to view the statistics for all of the participants. You can +begin the next round by selecting Round -> Start. +</p> +]]> +</entry> + + + +<entry key="general-instructions0"> +<![CDATA[ +<center><h3>Welcome to the experiment. Please do not close this window or open any +other applications.</h3></center> +]]> +</entry> + +<entry key="general-instructions1"> +<![CDATA[ +<h3>General Instructions</h3> +<p>Welcome. You have already earned 5 dollars by showing up for this exercise. +You can earn more, up to an extra 25 dollars, by participating in the exercise +which will last for about one hour. You will participate in this exercise as a +part of a group. Each group has five participants. Your group has been formed +by randomly assigning you to FOUR other participants in the room. The amount +of money you earn will depend on the decisions made by you and the rest of the +group. That is, your earnings will depend on your decisions as well as the +other members of your group. +</p> +<p> +This exercise mimics decisions people make in irrigation systems. In each round you +will receive 10 tokens which you can choose to keep or invest in the irrigation +infrastructure (for example canals and water diversion structures). Depending on the +state of repair of the irrigation infrastructure, it will be capable of directing +water to your field when you use your water diversion structure (called an +irrigation gate). Depending on the amount of water you can get to your field, you +can grow crops. Depending on the number of crops you grow you earn tokens. Each +token is worth 5 cents and you will be paid cash in private at the end of the +experiment based on the number of tokens you earned. +</p> +<p> +The experiment consists of a number of rounds. In each round you will first make a +decision as to how much to invest in the irrigation infrastructure. Without periodic +investment, the irrigation infrastructure will break down over time. Based on the +combined contributions of all 5 participants in your group in each round, as +explained below, your group can maintain the performance of the irrigation +infrastructure. The condition of the irrigation infrastructure determines +its capacity to deliver water which you can use to grow crops. +</p> +]]> +</entry> + +<entry key="general-instructionsq1"> +<![CDATA[ +<br><br> +To continue to the next page, please answer the following question:<br> +<form> +How many OTHER people in the room will be in your group?<br> +<input type="radio" name="q1" value="0">0<br> +<input type="radio" name="q1" value="1">1<br> +<input type="radio" name="q1" value="4">4<br> +<input type="radio" name="q1" value="Everybody">Everybody<br> +<br><br> +<input type="submit" name="submit" value="Submit"> +</form> +]]> +</entry> + +<entry key="general-instructions2"> +<![CDATA[ +<h3>Chat</h3> +<p>Each round will start with a chat period of 40 seconds where you can send text +messages to the other participants. You may discuss any aspect of the exercise. +<b>However</b>, you are <b>not allowed</b> to promise the other participants +side-payments or threaten them with any consequence after the experiment is +finished. You are also <b>not allowed</b> to reveal your real identity. We will be +monitoring the chat traffic. If we see any member of a group violating the rules, +we will have to remove that <b>entire group</b> from the experiment room. That +group will have to wait until the entire experiment is finished to receive +their payment.<br><br> + +You will see a text box appear on your screen when a chat period starts. The amount +of time left in the chat period will be shown at the <b>top left of the screen</b>.<br> +]]> +</entry> + +<entry key="general-instructionsq2"> +<![CDATA[ +<br><br> +To continue to the next page, please answer the following question:<br> +<form> +Which of the following topics are you <b>not allowed</b> to discuss in chat?<br> +<input type="radio" name="q2" value="weather">the weather<br> +<input type="radio" name="q2"... [truncated message content] |