diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/design/persistence/PersonalDatabase.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/main/java/design/persistence/PersonalDatabase.java b/src/main/java/design/persistence/PersonalDatabase.java index a045d59..886bd0b 100644 --- a/src/main/java/design/persistence/PersonalDatabase.java +++ b/src/main/java/design/persistence/PersonalDatabase.java @@ -8,8 +8,21 @@ public interface PersonalDatabase { PersonalDatabase INSTANCE = new JSONPersonalDatabase("data/personaldb.json"); Golfer[] getGolfers(); + Golfer getGolfer(String name); + void addGolfer(Golfer golfer) throws IOException; + void removeGolfer(Golfer golfer) throws IOException; + void updateGolfer(Golfer golfer) throws IOException; + + default Golfer loadOrCreateGolfer(String username, String fullNameIfNew, String pwIfNew) throws IOException { + Golfer g = getGolfer(username); + if (g != null) + return g; + g = new Golfer(fullNameIfNew, username, pwIfNew); + addGolfer(g); + return g; + } } |
