diff options
Diffstat (limited to '')
| -rw-r--r-- | src/main/java/design/model/Club.java | 8 | ||||
| -rw-r--r-- | src/main/java/design/model/Course.java | 6 | ||||
| -rw-r--r-- | src/main/java/design/model/Golfer.java | 21 | ||||
| -rw-r--r-- | src/main/java/design/model/Swing.java | 4 |
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) { |
