You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

141 lines
3.9 KiB

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<Ride> rides;
private ObservableList<Stop> stops;
private ObservableList<Route> routes;
private ObservableList<Trip> trips;
private ObservableList<SharedTrip> sharedTrips;
private Map<String, User> users;
private Map<String, Driver> drivers;//seperated from users as they are two different types of accounts
private Map<String, List<String>> notifications; //indexed by user name
public DataManager(List rides, List stops, List routes, List trips, List sharedTrips, Map users, Map drivers, Map<String, List<String>> 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<String, User>(), new HashMap<String, Driver>(), new HashMap<String, List<String>>());
}
public ObservableList<Ride> 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<Stop> 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<Route> 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<Trip> 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<SharedTrip> 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<String, User> 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<String, Driver> getDrivers() {
return drivers;
}
public Map<String, List<String>> getNotifications() {
return notifications;
}
}