summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2025-11-09 01:06:16 -0500
committersowgro <tpoke.ferrari@gmail.com>2025-11-09 01:06:16 -0500
commite8e05aa176be4babf5c28a7697e2d057077d2794 (patch)
tree2a91c41921ecf8ecce21001b63006d23c30248c1 /src
parent7a87c716e85a12c72c24173b88b2e07729d85241 (diff)
downloaddesignproject-design-6-e8e05aa176be4babf5c28a7697e2d057077d2794.tar.gz
designproject-design-6-e8e05aa176be4babf5c28a7697e2d057077d2794.tar.bz2
designproject-design-6-e8e05aa176be4babf5c28a7697e2d057077d2794.zip
make id system consistent
Diffstat (limited to '')
-rw-r--r--src/main/java/design/controller/userinput/menus/ManageClubs.java3
-rw-r--r--src/main/java/design/model/Club.java18
-rw-r--r--src/main/java/design/model/Golfer.java4
-rw-r--r--src/test/java/design/model/GolferTest.java6
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));