diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2025-10-12 00:55:11 -0400 |
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2025-10-12 00:55:11 -0400 |
| commit | 8d37a242acf4026c097f44c2383a7c746cff6393 (patch) | |
| tree | 6c013996eaf7deba5a5d3e2ff012f712d3063b52 /src/main/java/design | |
| parent | ab8fc9a51e594d19a0fa020bc7ae60efe5824c42 (diff) | |
| download | designproject-design-6-8d37a242acf4026c097f44c2383a7c746cff6393.tar.gz designproject-design-6-8d37a242acf4026c097f44c2383a7c746cff6393.tar.bz2 designproject-design-6-8d37a242acf4026c097f44c2383a7c746cff6393.zip | |
fix club serialization and saving of some options
Diffstat (limited to 'src/main/java/design')
6 files changed, 28 insertions, 0 deletions
diff --git a/src/main/java/design/controller/userinput/menus/ManageClubs.java b/src/main/java/design/controller/userinput/menus/ManageClubs.java index f05fcee..6290444 100644 --- a/src/main/java/design/controller/userinput/menus/ManageClubs.java +++ b/src/main/java/design/controller/userinput/menus/ManageClubs.java @@ -37,6 +37,11 @@ public class ManageClubs extends Menu { var selector = new SelectClub(); selector.present(); golfer.removeClub(selector.getResult()); + try { + personalDB.updateGolfer(golfer); + } catch (IOException ex) { + System.out.println("Failed to update golfer."); + } this.present(); })); diff --git a/src/main/java/design/controller/userinput/menus/ManageCourses.java b/src/main/java/design/controller/userinput/menus/ManageCourses.java index a0d7b61..4306560 100644 --- a/src/main/java/design/controller/userinput/menus/ManageCourses.java +++ b/src/main/java/design/controller/userinput/menus/ManageCourses.java @@ -4,12 +4,15 @@ import design.controller.userinput.Menu; import design.controller.userinput.MenuOption; import design.model.Course; import design.model.Golfer; +import design.persistence.PersonalDatabase; import design.runtime.Session; +import java.io.IOException; import java.util.List; public class ManageCourses extends Menu { private final Golfer golfer = Session.getCurrentGolfer(); + private final PersonalDatabase personalDB = PersonalDatabase.INSTANCE; @Override public String getTitle() { @@ -32,6 +35,11 @@ public class ManageCourses extends Menu { var selector = new SelectCourse(); selector.present(); golfer.removeCourse(selector.getResult()); + try { + personalDB.updateGolfer(golfer); + } catch (IOException ex) { + System.out.println("Failed to update golfer."); + } this.present(); })); diff --git a/src/main/java/design/model/Club.java b/src/main/java/design/model/Club.java index 9fa3c87..b12fd99 100644 --- a/src/main/java/design/model/Club.java +++ b/src/main/java/design/model/Club.java @@ -1,5 +1,13 @@ package design.model; +import com.fasterxml.jackson.annotation.JsonIdentityInfo; +import com.fasterxml.jackson.annotation.ObjectIdGenerators; + +@JsonIdentityInfo( + generator = ObjectIdGenerators.PropertyGenerator.class, + property = "id", + scope = Club.class +) public class Club { public enum ClubType { diff --git a/src/main/java/design/model/Golfer.java b/src/main/java/design/model/Golfer.java index 774bb78..48daae8 100644 --- a/src/main/java/design/model/Golfer.java +++ b/src/main/java/design/model/Golfer.java @@ -1,10 +1,12 @@ package design.model; import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; import java.util.ArrayList; import java.util.List; +@JsonPropertyOrder({ "clubs", "nextClubId" }) public class Golfer { private String username; private int passwordHash; diff --git a/src/main/java/design/model/Swing.java b/src/main/java/design/model/Swing.java index a93b66f..43c20f0 100644 --- a/src/main/java/design/model/Swing.java +++ b/src/main/java/design/model/Swing.java @@ -1,7 +1,11 @@ package design.model; +import com.fasterxml.jackson.annotation.JsonIdentityReference; + public class Swing { private final int distance; + + @JsonIdentityReference(alwaysAsId = true) private final Club clubUsed; public Swing(int distance, Club clubUsed) { diff --git a/src/main/java/design/persistence/JSONPersonalDatabase.java b/src/main/java/design/persistence/JSONPersonalDatabase.java index 3975d14..db613d9 100644 --- a/src/main/java/design/persistence/JSONPersonalDatabase.java +++ b/src/main/java/design/persistence/JSONPersonalDatabase.java @@ -11,6 +11,7 @@ import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; import com.fasterxml.jackson.module.paramnames.ParameterNamesModule; +import design.model.Club; import design.model.Course; import design.model.Golfer; |
