diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2025-11-09 00:06:03 -0500 |
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2025-11-09 00:06:03 -0500 |
| commit | e56ad78ddba089b5bb93af96e33ee7c42b7d0b51 (patch) | |
| tree | 2fa7e80f18ad516e46a8b2c783c29d61777337ad /src/main/java/design/persistence/JSONLeagueDatabase.java | |
| parent | ac4a71e3b43370fe45e39ac4e735b88f2e284a14 (diff) | |
| download | designproject-design-6-e56ad78ddba089b5bb93af96e33ee7c42b7d0b51.tar.gz designproject-design-6-e56ad78ddba089b5bb93af96e33ee7c42b7d0b51.tar.bz2 designproject-design-6-e56ad78ddba089b5bb93af96e33ee7c42b7d0b51.zip | |
create most of the model and league DAOs
Diffstat (limited to '')
| -rw-r--r-- | src/main/java/design/persistence/JSONLeagueDatabase.java | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/main/java/design/persistence/JSONLeagueDatabase.java b/src/main/java/design/persistence/JSONLeagueDatabase.java new file mode 100644 index 0000000..01f4fc3 --- /dev/null +++ b/src/main/java/design/persistence/JSONLeagueDatabase.java @@ -0,0 +1,63 @@ +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<Integer, League> 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(); + } +} |
