summaryrefslogtreecommitdiff
path: root/src/main/java/design/model
diff options
context:
space:
mode:
authorWillem Dalton <144246261+WillemDalton@users.noreply.github.com>2025-10-12 12:36:17 -0400
committerGitHub <noreply@github.com>2025-10-12 12:36:17 -0400
commitab1c8dbf8e3fbd7ae1affd17e7b5596b1e58e839 (patch)
tree91ed2c27e9735e05c8569f48e1130a95a7bdeb46 /src/main/java/design/model
parent1eca2f8681752ad359e8372780cdf719e2b1747d (diff)
parent050118d5d029382ffc3b11e9f8159fb297007ef5 (diff)
downloaddesignproject-design-6-ab1c8dbf8e3fbd7ae1affd17e7b5596b1e58e839.tar.gz
designproject-design-6-ab1c8dbf8e3fbd7ae1affd17e7b5596b1e58e839.tar.bz2
designproject-design-6-ab1c8dbf8e3fbd7ae1affd17e7b5596b1e58e839.zip
Merge pull request #12 from RIT-SWEN-262/menu-reorganize
Menu reorganize
Diffstat (limited to 'src/main/java/design/model')
-rw-r--r--src/main/java/design/model/Club.java8
-rw-r--r--src/main/java/design/model/Course.java6
-rw-r--r--src/main/java/design/model/Golfer.java21
-rw-r--r--src/main/java/design/model/Swing.java4
4 files changed, 35 insertions, 4 deletions
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/Course.java b/src/main/java/design/model/Course.java
index c199563..ce7c0e3 100644
--- a/src/main/java/design/model/Course.java
+++ b/src/main/java/design/model/Course.java
@@ -1,6 +1,5 @@
package design.model;
-import design.model.course_search.CourseList;
import design.model.course_search.ICourse;
import java.util.List;
@@ -9,7 +8,7 @@ public class Course implements ICourse {
private final int id;
private final String name;
- private final int difficultyRating;
+ private final float difficultyRating;
private final String location;
private final int holeCount;
private final int totalPar;
@@ -61,6 +60,7 @@ public class Course implements ICourse {
@Override
public String toString() {
- return name + ", " + location + ", " + difficultyRating + ", " + holeCount + ", " + totalPar;
+ return String.format("%s (%s) | Holes: %d | Total Par: %d | Difficulty: %.1f",
+ name, location, holeCount, totalPar, difficultyRating);
}
}
diff --git a/src/main/java/design/model/Golfer.java b/src/main/java/design/model/Golfer.java
index d34073f..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;
@@ -12,7 +14,7 @@ public class Golfer {
private final List<Course> courses;
private final List<Round> rounds;
private final List<Club> clubs; // Keep track of golfer's clubs
- private int nextClubId = 1;
+ private int nextClubId;
@JsonCreator
private Golfer(String username, int passwordHash, String fullName, List<Course> courses, List<Round> rounds,
@@ -72,6 +74,10 @@ public class Golfer {
courses.remove(course);
}
+ public boolean hasCourses() {
+ return !courses.isEmpty();
+ }
+
public Round[] getRounds() {
return rounds.toArray(Round[]::new);
}
@@ -86,6 +92,10 @@ public class Golfer {
return c;
}
+ public boolean hasClubs() {
+ return !clubs.isEmpty();
+ }
+
public boolean hasClub(Club c) {
return clubs.contains(c);
}
@@ -93,4 +103,13 @@ public class Golfer {
public Club[] getClubs() {
return clubs.toArray(Club[]::new);
}
+
+ @Override
+ public String toString() {
+ return String.format("%s (@%s)", fullName, username);
+ }
+
+ public void removeClub(Club c) {
+ clubs.remove(c);
+ }
}
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) {