/******************************************************************************* * Copyright (c) 2014 Imperial College London * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Raul Castro Fernandez - initial API and implementation ******************************************************************************/ import java.util.Vector; import uk.ac.imperial.lsds.seep.api.annotations.Partitioned; import uk.ac.imperial.lsds.seep.api.annotations.DriverProgram; import uk.ac.imperial.lsds.seepworker.api.largestateimpls.SeepMap; public class UT6 implements DriverProgram{ // Keep the money inserted by users @Partitioned public SeepMap<String, Integer> userid_money = new SeepMap<String, Integer>(); // Keep the total money inserted by day @Partitioned public SeepMap<Integer, Integer> day_money = new SeepMap<Integer, Integer>(); // The current day public int day = 2; public void main(){ String userid = "user001"; int money = 50; updateMoney(userid, money); int totalMoneyUser = totalMoneyUser(userid); int totalMoneyDay = totalMoneyDay(day); } public void updateMoney(String userid, int money){ // First update total money for user int currentMoney = 0; if(userid_money.containsKey(userid)){ currentMoney = (Integer)userid_money.get(userid); } int newMoney = currentMoney + money; userid_money.put(userid, newMoney); // Then update total money per day int moneyDay = 0; if(day_money.containsKey(day)){ moneyDay = (Integer)day_money.get(day); } int newTotal = moneyDay + money; day_money.put(day, newTotal); } public int totalMoneyUser(String userid){ int total = 0; if(userid_money.containsKey(userid)){ total = (Integer)userid_money.get(userid); } return total; } public int totalMoneyDay(int day){ int total = 0; if(day_money.containsKey(day)){ total = (Integer)day_money.get(day); } return total; } }