package model; import javafx.collections.FXCollections; import javafx.collections.ObservableArray; import javafx.collections.ObservableList; import javafx.collections.ObservableSet; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Created by Gondr on 4/04/2017. */ public class DataManager { private ObservableList rides; private ObservableList stops; private ObservableList routes; private ObservableList trips; private ObservableList sharedTrips; private Map users; private Map drivers;//seperated from users as they are two different types of accounts private Map> notifications; //indexed by user name public DataManager(List rides, List stops, List routes, List trips, List sharedTrips, Map users, Map drivers, Map> notifications){ this.rides = FXCollections.observableArrayList(rides); this.stops = FXCollections.observableArrayList(stops); this.routes = FXCollections.observableArrayList(routes); this.trips = FXCollections.observableArrayList(trips); this.sharedTrips = FXCollections.observableArrayList(sharedTrips); this.users = users; this.drivers = drivers; this.notifications = notifications; } public DataManager(){ this(FXCollections.observableArrayList(), FXCollections.observableArrayList(), FXCollections.observableArrayList(), FXCollections.observableArrayList(), FXCollections.observableArrayList(), new HashMap(), new HashMap(), new HashMap>()); } public ObservableList getRides() { return rides; } public void addRides(Ride ride){ rides.add(ride); } public void removeRide(Ride ride){ rides.remove(ride); } public void removeRide(int i){ rides.remove(i); } public ObservableList getStops() { return stops; } public boolean addStop(Stop stop){ for (int i = 0; i < stops.size(); i++){ if (stop.equals(stops.get(i))){ return false; } } stops.add(stop); return true; } public ObservableList getRoutes() { return routes; } public boolean addRoute(Route route){ for (Route r: routes){ if (route.equals(r)){ return false; } } routes.add(route); return true; } public ObservableList getTrips() { return trips; } public boolean addTrip(Trip trip){ for (Trip t: trips){ if (trip.equals(t)){ return false; } } trips.add(trip); return true; } public ObservableList getSharedTrips() { return sharedTrips; } public boolean addSharedTrip(SharedTrip sharedTrip){ for (SharedTrip t: sharedTrips){ if (sharedTrip.equals(t)){ return false; } } sharedTrips.add(sharedTrip); return true; } public boolean addUser(User user){ if (!users.containsKey(String.valueOf(user.studentNumber))) { users.put(String.valueOf(user.studentNumber), user); return true; } return false; } public Map getUsers() { return users; } public boolean addDriver(Driver driver){ if (!drivers.containsKey(String.valueOf(driver.studentNumber))) { drivers.put(String.valueOf(driver.studentNumber), driver); return true; } return false; } public Map getDrivers() { return drivers; } public Map> getNotifications() { return notifications; } }