@ -18,24 +18,24 @@ public class DataManager {
private Map < String , ObservableList < Stop > > stops ;
private Map < String , ObservableList < Route > > routes ;
private Map < String , ObservableList < Trip > > trips ;
private ObservableList< SharedTrip > sharedTrips ;
private Map< String , 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 ( Map < String , List < Ride > > rides , Map < String , List < Stop > > stops , Map < String , List < Route > > routes , Map < String , List < Trip > > trips , List sharedTrips , Map users , Map drivers , Map < String , List < String > > notifications ) {
public DataManager ( Map < String , List < Ride > > rides , Map < String , List < Stop > > stops , Map < String , List < Route > > routes , Map < String , List < Trip > > trips , Map< String , List< SharedTrip > > sharedTrips , Map users , Map drivers , Map < String , List < String > > notifications ) {
this . rides = convertRideMapToObserver ( rides ) ;
this . stops = convertStopMapToObserver ( stops ) ;
this . routes = convertRouteMapToObserver ( routes ) ;
this . trips = convertTripMapToObserver ( trips ) ;
this . sharedTrips = FXCollections. observableArrayList ( sharedTrips ) ;
this . sharedTrips = convertSharedTripMapToObserver ( sharedTrips ) ;
this . users = users ;
this . drivers = drivers ;
this . notifications = notifications ;
}
public DataManager ( ) {
this ( new HashMap < > ( ) , new HashMap < > ( ) , new HashMap < > ( ) , new HashMap < > ( ) , FXCollections . observableArrayList ( ) , new HashMap < String , User > ( ) , new HashMap < String , Driver > ( ) , new HashMap < String , List < String > > ( ) ) ;
this ( new HashMap < > ( ) , new HashMap < > ( ) , new HashMap < > ( ) , new HashMap < > ( ) , new HashMap < > ( ) , new HashMap < String , User > ( ) , new HashMap < String , Driver > ( ) , new HashMap < > ( ) ) ;
}
////////////////////////////////////////
@ -132,11 +132,35 @@ public class DataManager {
return convertTripMapToList ( trips ) ;
}
//////////////////////////////////
//Route
//////////////////////////////////
private Map < String , ObservableList < SharedTrip > > convertSharedTripMapToObserver ( Map < String , List < SharedTrip > > trips ) {
HashMap < String , ObservableList < SharedTrip > > ob = new HashMap < > ( ) ;
for ( String key : trips . keySet ( ) ) {
ob . put ( key , FXCollections . observableArrayList ( trips . get ( key ) ) ) ;
}
return ob ;
}
private Map < String , List < SharedTrip > > convertSharedTripMapToList ( Map < String , ObservableList < SharedTrip > > trips ) {
HashMap < String , List < SharedTrip > > ob = new HashMap < > ( ) ;
for ( String key : trips . keySet ( ) ) {
ob . put ( key , new ArrayList < > ( trips . get ( key ) ) ) ;
}
return ob ;
}
public Map < String , List < SharedTrip > > sharedTripsMapSerialised ( ) {
return convertSharedTripMapToList ( sharedTrips ) ;
}
public void newLogged ( ) {
rides . putIfAbsent ( Session . session . getUser ( ) . getID ( ) , FXCollections . observableArrayList ( ) ) ;
stops . putIfAbsent ( Session . session . getUser ( ) . getID ( ) , FXCollections . observableArrayList ( ) ) ;
routes . putIfAbsent ( Session . session . getUser ( ) . getID ( ) , FXCollections . observableArrayList ( ) ) ;
trips . putIfAbsent ( Session . session . getUser ( ) . getID ( ) , FXCollections . observableArrayList ( ) ) ;
sharedTrips . putIfAbsent ( Session . session . getUser ( ) . getID ( ) , FXCollections . observableArrayList ( ) ) ;
notifications . putIfAbsent ( Session . session . getUser ( ) . getID ( ) , FXCollections . observableArrayList ( ) ) ;
}
//////////////////////////////
@ -200,17 +224,25 @@ public class DataManager {
return true ;
}
public ObservableList < SharedTrip > getAllSharedTrips ( ) {
ObservableList < SharedTrip > allTrips = FXCollections . observableArrayList ( ) ;
for ( String key : sharedTrips . keySet ( ) ) {
allTrips . addAll ( sharedTrips . get ( key ) ) ;
}
return allTrips ;
}
public ObservableList < SharedTrip > getSharedTrips ( ) {
return sharedTrips ;
return sharedTrips .get ( Session . session . getUser ( ) . getID ( ) ) ;
}
public boolean addSharedTrip ( SharedTrip sharedTrip ) {
for ( SharedTrip t : sharedTrips ) {
for ( SharedTrip t : sharedTrips .get ( Session . session . getUser ( ) . getID ( ) ) ){
if ( sharedTrip . equals ( t ) ) {
return false ;
}
}
sharedTrips . add( sharedTrip ) ;
sharedTrips . get( Session . session . getUser ( ) . getID ( ) ) . add( sharedTrip ) ;
return true ;
}