Package nl.vpro.domain.media
Class Schedule
java.lang.Object
nl.vpro.domain.media.Schedule
- All Implemented Interfaces:
Serializable
,Iterable<ScheduleEvent>
,Predicate<ScheduleEvent>
public class Schedule
extends Object
implements Serializable, Iterable<ScheduleEvent>, Predicate<ScheduleEvent>
Representation of a time
asRange()
containing a collections of ScheduleEvent
s, for a certain Channel
- See Also:
-
Nested Class Summary
-
Field Summary
Modifier and TypeFieldDescriptionprotected Channel
protected boolean
protected Net
protected Integer
protected Boolean
protected SortedSet<ScheduleEvent>
protected Instant
static final LocalTime
AScheduleEvent
can basically be associated with aLocalDate
.static final Duration
Edge cases like 5:59 are logically considered part of the previous day, but the bulk of the schedule event will be in the current day, so we allow for a few minutes slack.protected Instant
static final ZoneId
The time zone most relevant for NPO, i.e. -
Constructor Summary
ConstructorDescriptionSchedule()
Schedule
(Channel channel, Instant start, Instant stop, Collection<ScheduleEvent> scheduleEvents) Schedule
(Channel channel, Instant start, Collection<ScheduleEvent> scheduleEvents) Schedule
(Channel channel, LocalDate start, Collection<ScheduleEvent> scheduleEvents) Schedule
(Net net, Instant start, Instant stop, Collection<ScheduleEvent> scheduleEvents) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addScheduleEvent
(ScheduleEvent scheduleEvent) void
addScheduleEventsFromMedia
(Collection<? extends Program> mediaObjects) void
addScheduleEventsFromMedia
(Program mediaObject) void
addScheduleEventsFromMedia
(Program... mediaObjects) com.google.common.collect.Range<LocalDateTime>
Returns the with this Schedule associatedgetStart()
andgetStop()
instances as aRange
ofZonedDateTime
's.com.google.common.collect.Range<Instant>
asRange()
static @NonNull Schedule.Builder
builder()
boolean
findScheduleEvent
(ScheduleEvent event) Finds in the current schedule the excact event (by database id)getNet()
getStart()
getStop()
static LocalDate
guideDay()
Returns the current value of 'today' as aLocalDate
, but considersSTART_OF_SCHEDULE
andSTART_OF_SCHEDULE_SLACK
static @PolyNull LocalDate
Returns the current value of 'today' as aLocalDate
, but considersSTART_OF_SCHEDULE
andSTART_OF_SCHEDULE_SLACK
static LocalDate
guideDay
(LocalDateTime datetime) int
hashCode()
boolean
@NonNull Iterator<ScheduleEvent>
iterator()
static boolean
localTimeBelongsToPreviousDay
(@NonNull LocalTime localTime) Whether a certainScheduleEvent
, would be considered part of the previous day.static Instant
of
(Instant instant, LocalDateTime localDateTime, LocalDate localDate) boolean
removeScheduleEvent
(ScheduleEvent scheduleEvent) void
setChannel
(Channel value) void
setFiltered
(boolean filtered) void
setGuideDate
(LocalDate start) void
void
void
void
setStart
(LocalDateTime start) void
void
setStop
(LocalDateTime stop) boolean
test
(ScheduleEvent event) static Instant
toInstant
(LocalDateTime time) protected static Instant
Deprecated.toString()
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
ZONE_ID
The time zone most relevant for NPO, i.e. the timezone in the Netherlands. -
START_OF_SCHEDULE
AScheduleEvent
can basically be associated with aLocalDate
. If there is no explicit value, then it can be based onScheduleEvent.getStartInstant()
and (ZONE_ID
.If the time of the day is before this, then it would be considered part of the previous day.
-
START_OF_SCHEDULE_SLACK
Edge cases like 5:59 are logically considered part of the previous day, but the bulk of the schedule event will be in the current day, so we allow for a few minutes slack. -
scheduleEvents
-
channel
-
net
-
start
-
stop
-
releaseVersion
-
filtered
protected boolean filtered -
reruns
-
-
Constructor Details
-
Schedule
public Schedule() -
Schedule
-
Schedule
-
Schedule
-
Schedule
-
Schedule
-
Schedule
public Schedule(Channel channel, Instant start, Instant stop, Collection<ScheduleEvent> scheduleEvents) -
Schedule
-
Schedule
-
Schedule
-
-
Method Details
-
guideDay
Returns the current value of 'today' as aLocalDate
, but considersSTART_OF_SCHEDULE
andSTART_OF_SCHEDULE_SLACK
-
guideDay
- Since:
- 5.11
-
guideDay
Returns the current value of 'today' as aLocalDate
, but considersSTART_OF_SCHEDULE
andSTART_OF_SCHEDULE_SLACK
- Since:
- 7.2
-
localTimeBelongsToPreviousDay
Whether a certainScheduleEvent
, would be considered part of the previous day. This is a utility function used in several other utilities- Since:
- 5.11
-
toInstant
-
toInstant
Deprecated.Dont useDate
-
of
-
getScheduleEvents
-
addScheduleEvent
-
removeScheduleEvent
-
findScheduleEvent
Finds in the current schedule the excact event (by database id) -
addScheduleEventsFromMedia
-
addScheduleEventsFromMedia
-
addScheduleEventsFromMedia
-
getChannel
-
setChannel
-
getNet
-
setNet
-
getReleaseVersion
-
getStart
-
setStart
-
setGuideDate
-
getGuideDate
-
setStart
-
getStop
-
setStop
-
setStop
-
isFiltered
public boolean isFiltered() -
setFiltered
public void setFiltered(boolean filtered) -
test
- Specified by:
test
in interfacePredicate<ScheduleEvent>
-
toString
-
iterator
- Specified by:
iterator
in interfaceIterable<ScheduleEvent>
-
asLocalRange
Returns the with this Schedule associatedgetStart()
andgetStop()
instances as aRange
ofZonedDateTime
's.I.e. an interval that is closed at the start, and open at the end. For now everything is associated with the time zone
ZONE_ID
(i.e. CEST), since we haven't accounted an use case for something else yet, but otherwise we may imaging also the time zone to be a member of this schedule object. -
asRange
-
equals
-
hashCode
public int hashCode() -
builder
-
getReruns
-
setReruns
-
Date