48 lines
1.3 KiB
Java
48 lines
1.3 KiB
Java
|
package envoy.client;
|
||
|
|
||
|
import java.io.File;
|
||
|
import java.io.FileInputStream;
|
||
|
import java.io.FileOutputStream;
|
||
|
import java.io.IOException;
|
||
|
import java.io.ObjectInputStream;
|
||
|
import java.io.ObjectOutputStream;
|
||
|
import java.util.ArrayList;
|
||
|
import java.util.List;
|
||
|
|
||
|
/**
|
||
|
* Project: <strong>envoy-client</strong><br>
|
||
|
* File: <strong>ChatSynchronizer.java</strong><br>
|
||
|
* Created: <strong>27.10.2019</strong><br>
|
||
|
*
|
||
|
* @author Kai S. K. Engelbart
|
||
|
* @since Envoy v0.1-alpha
|
||
|
*/
|
||
|
public class ChatSynchronizer {
|
||
|
|
||
|
private File localDB;
|
||
|
private List<Chat> chats = new ArrayList<>();
|
||
|
|
||
|
public ChatSynchronizer(String localDBPath) {
|
||
|
localDB = new File(localDBPath);
|
||
|
if (localDB.exists() && !localDB.isDirectory()) loadFromLocalDB();
|
||
|
}
|
||
|
|
||
|
public void saveToLocalDB() {
|
||
|
try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(localDB))) {
|
||
|
out.writeObject(chats);
|
||
|
} catch(IOException ex) {
|
||
|
ex.printStackTrace();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
@SuppressWarnings("unchecked")
|
||
|
private void loadFromLocalDB() {
|
||
|
try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(localDB))) {
|
||
|
Object obj = in.readObject();
|
||
|
if (obj instanceof ArrayList<?>) chats = (ArrayList<Chat>) obj;
|
||
|
} catch (ClassNotFoundException | IOException e) {}
|
||
|
}
|
||
|
|
||
|
public List<Chat> getChats() { return chats; }
|
||
|
}
|