diff options
author | Aaron Donnelly <126603683+Aaron-Donnelly@users.noreply.github.com> | 2023-05-03 14:27:45 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-03 14:27:45 +0100 |
commit | 442806299eb328b5b41882d04c3dd65650715647 (patch) | |
tree | ce471e548ade4a971ce1569ffa07661b49533e57 /src/main/java/org/traccar/model/Calendar.java | |
parent | beb43ba371de5862a7ca6579daef20c8ffd83f2d (diff) | |
parent | bb6964f03867d039a547c103cd16390f78688022 (diff) | |
download | trackermap-server-442806299eb328b5b41882d04c3dd65650715647.tar.gz trackermap-server-442806299eb328b5b41882d04c3dd65650715647.tar.bz2 trackermap-server-442806299eb328b5b41882d04c3dd65650715647.zip |
Merge branch 'traccar:master' into Teltonika-io30-faultCount
Diffstat (limited to 'src/main/java/org/traccar/model/Calendar.java')
-rw-r--r-- | src/main/java/org/traccar/model/Calendar.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/main/java/org/traccar/model/Calendar.java b/src/main/java/org/traccar/model/Calendar.java index 62c51cc4a..03f1995ba 100644 --- a/src/main/java/org/traccar/model/Calendar.java +++ b/src/main/java/org/traccar/model/Calendar.java @@ -34,6 +34,7 @@ import java.time.Duration; import java.util.Collection; import java.util.Date; import java.util.List; +import java.util.stream.Collectors; @StorageName("tc_calendars") public class Calendar extends ExtendedModel { @@ -68,16 +69,22 @@ public class Calendar extends ExtendedModel { return calendar; } - public Collection<VEvent> findEvents(Date date) { + private Collection<VEvent> findEvents(Date date) { if (calendar != null) { - Period period = new Period(new DateTime(date), Duration.ZERO); - Filter<VEvent> filter = new Filter<>(new PeriodRule<>(period)); + var filter = new Filter<VEvent>(new PeriodRule<>(new Period(new DateTime(date), Duration.ZERO))); return filter.filter(calendar.getComponents(CalendarComponent.VEVENT)); } else { return List.of(); } } + public Collection<Period> findPeriods(Date date) { + var calendarDate = new net.fortuna.ical4j.model.Date(date); + return findEvents(date).stream() + .flatMap((event) -> event.getConsumedTime(calendarDate, calendarDate).stream()) + .collect(Collectors.toSet()); + } + public boolean checkMoment(Date date) { return !findEvents(date).isEmpty(); } |