package design.persistence; import design.model.League; import java.io.File; import java.util.HashMap; import java.util.Map; public class JSONLeagueDatabase implements LeagueDatabase { private static JSONLeagueDatabase INSTANCE; public static JSONLeagueDatabase instance() { if (INSTANCE == null) { INSTANCE = new JSONLeagueDatabase("data/leaguedb.json"); } return INSTANCE; } private final Map cache; private final File file; public JSONLeagueDatabase(String filename) { this.file = new File(filename); this.cache = new HashMap<>(); } private void load() { //TODO impl } private void save() { //TODO impl } @Override public League getLeague(int id) { return cache.get(id); } @Override public League[] getLeagues() { return cache.values().toArray(League[]::new); } @Override public void addLeague(League league) { cache.putIfAbsent(league.getId(), league); save(); } @Override public void removeLeague(League league) { cache.remove(league.getId()); save(); } @Override public void updateLeague(League league) { cache.put(league.getId(), league); save(); } }