summaryrefslogtreecommitdiff
path: root/src/main/java/design
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/java/design/controller/userinput/Session.java9
-rw-r--r--src/main/java/design/controller/userinput/menus/CourseSelectMenu.java13
-rw-r--r--src/main/java/design/controller/userinput/menus/HolePlayMenu.java3
-rw-r--r--src/main/java/design/persistence/JSONPersonalDatabase.java8
-rw-r--r--src/main/java/design/persistence/PersonalDatabase.java10
5 files changed, 14 insertions, 29 deletions
diff --git a/src/main/java/design/controller/userinput/Session.java b/src/main/java/design/controller/userinput/Session.java
index 4de1614..7fbb786 100644
--- a/src/main/java/design/controller/userinput/Session.java
+++ b/src/main/java/design/controller/userinput/Session.java
@@ -1,16 +1,8 @@
package design.controller.userinput;
import design.model.Golfer;
-import design.persistence.MasterDatabase;
-import design.persistence.PersonalDatabase;
public final class Session {
- private Session() {
- }
-
- public static final PersonalDatabase PDB = PersonalDatabase.INSTANCE;
- public static final MasterDatabase MDB = MasterDatabase.INSTANCE;
-
private static Golfer currentGolfer;
public static Golfer getCurrentGolfer() {
@@ -20,5 +12,4 @@ public final class Session {
public static void setCurrentGolfer(Golfer currentGolfer) {
Session.currentGolfer = currentGolfer;
}
-
}
diff --git a/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java b/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java
index cf6f4b1..7cef7fc 100644
--- a/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java
+++ b/src/main/java/design/controller/userinput/menus/CourseSelectMenu.java
@@ -12,6 +12,9 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
+import design.persistence.MasterDatabase;
+import design.persistence.PersonalDatabase;
+
public class CourseSelectMenu extends Menu {
@Override
@@ -23,13 +26,16 @@ public class CourseSelectMenu extends Menu {
public List<MenuOption> getMenuOptions() {
List<MenuOption> opts = new ArrayList<>();
- // 0) pick course by number TODO: add error checking
+ // 0) back
+ opts.add(new MenuOption("back to main menu", a -> new MainMenu().present()));
+
+ // 1) pick course by number TODO: add error checking
opts.add(new MenuOption("pick course by number (1..1000)", a -> {
Scanner sc = new Scanner(System.in);
System.out.print("Course number (1..1000): ");
int n = Integer.parseInt(sc.nextLine().trim());
- Course c = Session.MDB.getCourse(n - 1);
+ Course c = MasterDatabase.INSTANCE.getCourse(n - 1);
System.out.print("Starting hole (1..18, blank=1): ");
String s = sc.nextLine().trim();
@@ -42,9 +48,6 @@ public class CourseSelectMenu extends Menu {
new HolePlayMenu(r).present();
}));
- // 1) back
- opts.add(new MenuOption("back to main menu", a -> new MainMenu().present()));
-
return opts;
}
}
diff --git a/src/main/java/design/controller/userinput/menus/HolePlayMenu.java b/src/main/java/design/controller/userinput/menus/HolePlayMenu.java
index 63447e2..782b662 100644
--- a/src/main/java/design/controller/userinput/menus/HolePlayMenu.java
+++ b/src/main/java/design/controller/userinput/menus/HolePlayMenu.java
@@ -6,6 +6,7 @@ import design.controller.userinput.Session;
import design.model.Club;
import design.model.Round;
import design.model.holeplay.HolePlayContext;
+import design.persistence.PersonalDatabase;
import java.util.ArrayList;
import java.util.List;
@@ -18,7 +19,7 @@ public class HolePlayMenu extends Menu {
public HolePlayMenu(Round round) {
this.round = round;
- this.ctx = new HolePlayContext(Session.getCurrentGolfer(), round, Session.PDB);
+ this.ctx = new HolePlayContext(Session.getCurrentGolfer(), round, PersonalDatabase.INSTANCE);
}
@Override
diff --git a/src/main/java/design/persistence/JSONPersonalDatabase.java b/src/main/java/design/persistence/JSONPersonalDatabase.java
index 187c2d2..b034680 100644
--- a/src/main/java/design/persistence/JSONPersonalDatabase.java
+++ b/src/main/java/design/persistence/JSONPersonalDatabase.java
@@ -31,7 +31,9 @@ public class JSONPersonalDatabase implements PersonalDatabase {
this.cache = new HashMap<>();
this.mapper = new ObjectMapper();
- mapper.configure(com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+ // TODO: Once the saved JSON matches the model, consider removing.
+ // TEMP: tolerate unknown props while the model stabilizes
+ mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
SimpleModule module = new SimpleModule();
module.addDeserializer(Course.class, new CourseIdDeserializer());
@@ -64,9 +66,7 @@ public class JSONPersonalDatabase implements PersonalDatabase {
// turns that collection into a real array of golfers
@Override
public Golfer[] getGolfers() {
- Collection<Golfer> golfers = cache.values();
- Golfer[] array = golfers.toArray(new Golfer[golfers.size()]);
- return array;
+ return cache.values().toArray(Golfer[]::new);
}
@Override
diff --git a/src/main/java/design/persistence/PersonalDatabase.java b/src/main/java/design/persistence/PersonalDatabase.java
index 886bd0b..428694b 100644
--- a/src/main/java/design/persistence/PersonalDatabase.java
+++ b/src/main/java/design/persistence/PersonalDatabase.java
@@ -1,7 +1,6 @@
package design.persistence;
import design.model.Golfer;
-
import java.io.IOException;
public interface PersonalDatabase {
@@ -16,13 +15,4 @@ public interface PersonalDatabase {
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;
- }
}