diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2025-11-12 12:55:12 -0500 |
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2025-11-12 12:55:12 -0500 |
| commit | 9a0949d31a7a0e8c9c311b07e92852cff867cc66 (patch) | |
| tree | cbe0e76677152ba1d2a4959dc61c8c873cd3d4c3 /src/main/java/design/model/League.java | |
| parent | a0b662eccc6422348a1016dc71b8262eeeeee78f (diff) | |
| download | designproject-design-6-9a0949d31a7a0e8c9c311b07e92852cff867cc66.tar.gz designproject-design-6-9a0949d31a7a0e8c9c311b07e92852cff867cc66.tar.bz2 designproject-design-6-9a0949d31a7a0e8c9c311b07e92852cff867cc66.zip | |
Fix some serialization stuff
Diffstat (limited to '')
| -rw-r--r-- | src/main/java/design/model/League.java | 19 |
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) { |
