package geniusweb.deadline; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeInfo.As; /** * Deadline indicates how long a session will be allowed to run. So it contains * "relative" data (relative to the unknown start time of the session) * */ @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = As.WRAPPER_OBJECT) @JsonSubTypes({ @JsonSubTypes.Type(value = DeadlineRounds.class), @JsonSubTypes.Type(value = DeadlineTime.class) }) @JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE, isGetterVisibility = Visibility.NONE) public interface Deadline { /** * * @return the duration of this deadline, measured in milliseconds */ public Long getDuration(); }