diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2025-11-09 01:06:16 -0500 |
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2025-11-09 01:06:16 -0500 |
| commit | e8e05aa176be4babf5c28a7697e2d057077d2794 (patch) | |
| tree | 2a91c41921ecf8ecce21001b63006d23c30248c1 | |
| parent | 7a87c716e85a12c72c24173b88b2e07729d85241 (diff) | |
| download | designproject-design-6-e8e05aa176be4babf5c28a7697e2d057077d2794.tar.gz designproject-design-6-e8e05aa176be4babf5c28a7697e2d057077d2794.tar.bz2 designproject-design-6-e8e05aa176be4babf5c28a7697e2d057077d2794.zip | |
make id system consistent
| -rw-r--r-- | src/main/java/design/controller/userinput/menus/ManageClubs.java | 3 | ||||
| -rw-r--r-- | src/main/java/design/model/Club.java | 18 | ||||
| -rw-r--r-- | src/main/java/design/model/Golfer.java | 4 | ||||
| -rw-r--r-- | src/test/java/design/model/GolferTest.java | 6 |
4 files changed, 24 insertions, 7 deletions
diff --git a/src/main/java/design/controller/userinput/menus/ManageClubs.java b/src/main/java/design/controller/userinput/menus/ManageClubs.java index 27b011c..6b6811b 100644 --- a/src/main/java/design/controller/userinput/menus/ManageClubs.java +++ b/src/main/java/design/controller/userinput/menus/ManageClubs.java @@ -58,7 +58,8 @@ public class ManageClubs extends Menu { selector.present(); Club.ClubType type = selector.getResult(); - golfer.addClub(manufacture, nickname, type); + Club c = new Club(manufacture, nickname, type); + golfer.addClub(c); // Add club to JSON try { diff --git a/src/main/java/design/model/Club.java b/src/main/java/design/model/Club.java index b12fd99..c19811c 100644 --- a/src/main/java/design/model/Club.java +++ b/src/main/java/design/model/Club.java @@ -1,5 +1,6 @@ package design.model; +import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIdentityInfo; import com.fasterxml.jackson.annotation.ObjectIdGenerators; @@ -21,18 +22,26 @@ public class Club { PUTTER } - private final int id; + private int id; private final String manufacture; private final String nickname; private final ClubType clubType; - public Club(int id, String manufacture, String nickname, ClubType clubType) { + @JsonCreator + private Club(int id, String manufacture, String nickname, ClubType clubType) { this.id = id; this.manufacture = manufacture; this.nickname = nickname; this.clubType = clubType; } + public Club(String manufacture, String nickname, ClubType clubType) { + this.id = -1; + this.manufacture = manufacture; + this.nickname = nickname; + this.clubType = clubType; + } + public int getId() { return id; } @@ -49,6 +58,11 @@ public class Club { return clubType; } + public void setId(int id) { + assert this.id == -1; + this.id = id; + } + @Override public String toString() { return String.format("#%d %s - %s (%s)", id, nickname, manufacture, clubType); diff --git a/src/main/java/design/model/Golfer.java b/src/main/java/design/model/Golfer.java index 48daae8..38a3ba9 100644 --- a/src/main/java/design/model/Golfer.java +++ b/src/main/java/design/model/Golfer.java @@ -86,8 +86,8 @@ public class Golfer { rounds.add(round); } - public Club addClub(String manufacture, String nickname, Club.ClubType type) { - Club c = new Club(nextClubId++, manufacture, nickname, type); + public Club addClub(Club c) { + c.setId(nextClubId++); clubs.add(c); return c; } diff --git a/src/test/java/design/model/GolferTest.java b/src/test/java/design/model/GolferTest.java index 4dce705..3a79070 100644 --- a/src/test/java/design/model/GolferTest.java +++ b/src/test/java/design/model/GolferTest.java @@ -103,7 +103,8 @@ public class GolferTest { { Golfer testGolfer = new Golfer("John Doe", "jdoesgolf2", "weback4321"); - testGolfer.addClub("John Doe", "The Slammer", ClubType.DRIVER); + Club c = new Club("John Doe", "The Slammer", ClubType.DRIVER); + testGolfer.addClub(c); Club addedClub = testGolfer.getClubs()[0]; assertTrue(testGolfer.hasClub(addedClub)); assertTrue(testGolfer.hasClubs()); @@ -114,7 +115,8 @@ public class GolferTest { { Golfer testGolfer = new Golfer("John Doe", "jdoesgolf2", "weback4321"); - testGolfer.addClub("John Doe", "The Slammer", ClubType.DRIVER); + Club c = new Club("John Doe", "The Slammer", ClubType.DRIVER); + testGolfer.addClub(c); Club addedClub = testGolfer.getClubs()[0]; testGolfer.removeClub(addedClub); assertFalse(testGolfer.hasClub(addedClub)); |
