summaryrefslogtreecommitdiff
path: root/src/main/java/design/model/League.java
diff options
context:
space:
mode:
authorsowgro <tpoke.ferrari@gmail.com>2025-11-12 12:55:12 -0500
committersowgro <tpoke.ferrari@gmail.com>2025-11-12 12:55:12 -0500
commit9a0949d31a7a0e8c9c311b07e92852cff867cc66 (patch)
treecbe0e76677152ba1d2a4959dc61c8c873cd3d4c3 /src/main/java/design/model/League.java
parenta0b662eccc6422348a1016dc71b8262eeeeee78f (diff)
downloaddesignproject-design-6-9a0949d31a7a0e8c9c311b07e92852cff867cc66.tar.gz
designproject-design-6-9a0949d31a7a0e8c9c311b07e92852cff867cc66.tar.bz2
designproject-design-6-9a0949d31a7a0e8c9c311b07e92852cff867cc66.zip
Fix some serialization stuff
Diffstat (limited to 'src/main/java/design/model/League.java')
-rw-r--r--src/main/java/design/model/League.java19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/main/java/design/model/League.java b/src/main/java/design/model/League.java
index 6dab033..881e25f 100644
--- a/src/main/java/design/model/League.java
+++ b/src/main/java/design/model/League.java
@@ -1,11 +1,22 @@
package design.model;
import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+@JsonTypeInfo(
+ use = JsonTypeInfo.Id.NAME,
+ include = JsonTypeInfo.As.PROPERTY,
+ property = "type"
+)
+@JsonSubTypes({
+ @JsonSubTypes.Type(value = ScrambleLeague.class, name = "scramble"),
+ @JsonSubTypes.Type(value = StrokeLeague.class, name = "stroke")
+})
public abstract class League {
private int id;
private final String name;
@@ -13,7 +24,7 @@ public abstract class League {
private final Date startDate;
private final Date endDate;
private final Golfer owner;
- private List<Match> schedule;
+ private final List<Match> schedule;
@JsonCreator
protected League(int id, String name, Date registrationDate, Date startDate, Date endDate, Golfer owner, List<Match> schedule) {
@@ -23,7 +34,7 @@ public abstract class League {
this.startDate = startDate;
this.endDate = endDate;
this.owner = owner;
- this.schedule = schedule;
+ this.schedule = schedule != null ? schedule : new ArrayList<>();
}
public League(String name, Date registrationDate, Date startDate, Date endDate, Golfer owner) {
@@ -60,8 +71,8 @@ public abstract class League {
return owner;
}
- public List<Match> getSchedule() {
- return schedule;
+ public Match[] getSchedule() {
+ return schedule.toArray(Match[]::new);
}
public void addMatchToSchedule(Match match) {