package design.model; import com.fasterxml.jackson.annotation.JsonCreator; import java.util.Date; public abstract class League { private int id; private final String name; private final Date registrationDate; private final Date startDate; private final Date endDate; private final Golfer owner; @JsonCreator protected League(int id, String name, Date registrationDate, Date startDate, Date endDate, Golfer owner) { this.id = id; this.name = name; this.registrationDate = registrationDate; this.startDate = startDate; this.endDate = endDate; this.owner = owner; } public League(String name, Date registrationDate, Date startDate, Date endDate, Golfer owner) { this.id = -1; this.name = name; this.registrationDate = registrationDate; this.startDate = startDate; this.endDate = endDate; this.owner = owner; } public int getId() { return id; } public String getName() { return name; } public Date getRegistrationDate() { return registrationDate; } public Date getStartDate() { return startDate; } public Date getEndDate() { return endDate; } public Golfer getOwner() { return owner; } public void setId(int id) { assert this.id == -1; this.id = id; } }