|
|
|
|
@ -1,5 +1,7 @@
|
|
|
|
|
package utils;
|
|
|
|
|
|
|
|
|
|
import com.google.gson.Gson;
|
|
|
|
|
import com.google.gson.GsonBuilder;
|
|
|
|
|
import com.google.gson.reflect.TypeToken;
|
|
|
|
|
import model.*;
|
|
|
|
|
|
|
|
|
|
@ -7,9 +9,7 @@ import java.io.*;
|
|
|
|
|
import java.lang.reflect.Constructor;
|
|
|
|
|
import java.lang.reflect.InvocationTargetException;
|
|
|
|
|
import java.lang.reflect.Type;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Created by Gondr on 19/05/2017.
|
|
|
|
|
@ -36,7 +36,9 @@ public class DataManagerSerialiser extends Serialiser {
|
|
|
|
|
boolean serialRoutesSuccess = serialiseRoutes(routes, "serialisation/routes.json");
|
|
|
|
|
boolean serialTripsSuccess = serialiseTrips(trips, "serialisation/trips.json");
|
|
|
|
|
boolean serialSharedTripsSuccess = serialiseSharedTrips(sharedTrips, "serialisation/sharedtrips.json");
|
|
|
|
|
return (serialRidesSuccess && serialStopsSuccess && serialRoutesSuccess && serialTripsSuccess && serialSharedTripsSuccess);
|
|
|
|
|
boolean serialUsersSuccess = serialiseUsers(dataManager.getUsers(), "serialisation/users.json");
|
|
|
|
|
boolean serialDriversSuccess = serialiseDrivers(dataManager.getDrivers(), "serialisation/drivers.json");
|
|
|
|
|
return (serialRidesSuccess && serialStopsSuccess && serialRoutesSuccess && serialTripsSuccess && serialSharedTripsSuccess && serialUsersSuccess && serialDriversSuccess);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@ -106,6 +108,37 @@ public class DataManagerSerialiser extends Serialiser {
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean serialiseUsers(Map<String,User> users, String filepath){
|
|
|
|
|
for (String key: users.keySet()){
|
|
|
|
|
users.get(key).serialise();
|
|
|
|
|
}
|
|
|
|
|
try{
|
|
|
|
|
String path = getClass().getClassLoader().getResource(filepath).getPath();
|
|
|
|
|
Writer writer = new OutputStreamWriter(new FileOutputStream(path), "UTF-8");
|
|
|
|
|
gson.toJson(users, writer);
|
|
|
|
|
writer.close();
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean serialiseDrivers(Map<String,Driver> drivers, String filepath){
|
|
|
|
|
for (String key: drivers.keySet()){
|
|
|
|
|
drivers.get(key).serialise();
|
|
|
|
|
}
|
|
|
|
|
try{
|
|
|
|
|
String path = getClass().getClassLoader().getResource(filepath).getPath();
|
|
|
|
|
Writer writer = new OutputStreamWriter(new FileOutputStream(path), "UTF-8");
|
|
|
|
|
gson.toJson(drivers, writer);
|
|
|
|
|
writer.close();
|
|
|
|
|
} catch (IOException e) {
|
|
|
|
|
e.printStackTrace();
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* loads the data manager from file
|
|
|
|
|
* @return whether the data was loaded properly or not
|
|
|
|
|
@ -148,7 +181,21 @@ public class DataManagerSerialiser extends Serialiser {
|
|
|
|
|
trip.deserialise();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return new DataManager(rides, stops, routes, trips, sharedTrips);
|
|
|
|
|
Reader reader6 = new InputStreamReader(getClass().getClassLoader().getResourceAsStream("serialisation/users.json"), "UTF-8");
|
|
|
|
|
HashMap<String, User> users = gson.fromJson(reader6, new TypeToken<HashMap<String, User>>(){}.getType());
|
|
|
|
|
reader6.close();
|
|
|
|
|
for (String userkey: users.keySet()){
|
|
|
|
|
users.get(userkey).deserialise();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Reader reader7 = new InputStreamReader(getClass().getClassLoader().getResourceAsStream("serialisation/drivers.json"), "UTF-8");
|
|
|
|
|
HashMap<String, Driver> drivers = gson.fromJson(reader7, new TypeToken<HashMap<String, Driver>>(){}.getType());
|
|
|
|
|
reader7.close();
|
|
|
|
|
for (String driverkey: drivers.keySet()){
|
|
|
|
|
users.get(driverkey).deserialise();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return new DataManager(rides, stops, routes, trips, sharedTrips, users, drivers);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|