X-Git-Url: https://git.hedgecode.org/?p=snooker-score-api.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fsnooker%2Fjson%2FJsonEvents.java;h=664dcd84709bc5945a578cdfcc32090ffe34a8da;hp=78474de99ff1fcfc7e6708ab24e12f8504632497;hb=edb206228987f506c5dc7a20585537b71f7a2e9d;hpb=20a8093246c9bb7def0c07a03bceff6f31412f35 diff --git a/src/main/java/org/hedgecode/snooker/json/JsonEvents.java b/src/main/java/org/hedgecode/snooker/json/JsonEvents.java index 78474de..664dcd8 100644 --- a/src/main/java/org/hedgecode/snooker/json/JsonEvents.java +++ b/src/main/java/org/hedgecode/snooker/json/JsonEvents.java @@ -17,6 +17,9 @@ package org.hedgecode.snooker.json; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Calendar; +import java.util.Date; import java.util.List; import org.hedgecode.snooker.api.Event; @@ -31,6 +34,8 @@ import org.hedgecode.snooker.compare.EventComparators; */ public class JsonEvents extends JsonCollectionEntity implements Events { + private static final JsonEvents EMPTY = new JsonEvents(new Event[0]); + protected JsonEvents(Event[] entities) { super(entities); } @@ -45,7 +50,7 @@ public class JsonEvents extends JsonCollectionEntity implements Events { for (Event event : this) if (event.season().equals(season)) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -54,7 +59,7 @@ public class JsonEvents extends JsonCollectionEntity implements Events { for (Event event : this) if (event.type().equals(type)) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -63,7 +68,7 @@ public class JsonEvents extends JsonCollectionEntity implements Events { for (Event event : this) if (event.city().equals(city)) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -72,7 +77,7 @@ public class JsonEvents extends JsonCollectionEntity implements Events { for (Event event : this) if (event.country().equals(country)) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -81,7 +86,7 @@ public class JsonEvents extends JsonCollectionEntity implements Events { for (Event event : this) if (event.sex().equals(sex)) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -90,7 +95,7 @@ public class JsonEvents extends JsonCollectionEntity implements Events { for (Event event : this) if (event.stage().equals(stage)) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -99,7 +104,7 @@ public class JsonEvents extends JsonCollectionEntity implements Events { for (Event event : this) if (event.valueType().equals(valueType)) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -108,7 +113,7 @@ public class JsonEvents extends JsonCollectionEntity implements Events { for (Event event : this) if (event.worldSnookerId() == worldSnookerId) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -116,9 +121,9 @@ public class JsonEvents extends JsonCollectionEntity implements Events { List events = new ArrayList<>(); long currentTime = System.currentTimeMillis(); for (Event event : this) - if (event.endDate().getTime() < currentTime) + if (currentTime > nextDate(event.endDate()).getTime()) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -126,10 +131,10 @@ public class JsonEvents extends JsonCollectionEntity implements Events { List events = new ArrayList<>(); long currentTime = System.currentTimeMillis(); for (Event event : this) - if (event.startDate().getTime() < currentTime - && event.endDate().getTime() > currentTime) + if (currentTime > event.startDate().getTime() + && currentTime < nextDate(event.endDate()).getTime()) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -137,9 +142,9 @@ public class JsonEvents extends JsonCollectionEntity implements Events { List events = new ArrayList<>(); long currentTime = System.currentTimeMillis(); for (Event event : this) - if (event.startDate().getTime() > currentTime) + if (currentTime < event.startDate().getTime()) events.add(event); - return events.isEmpty() ? null : new JsonEvents(events); + return events.isEmpty() ? EMPTY : new JsonEvents(events); } @Override @@ -156,4 +161,11 @@ public class JsonEvents extends JsonCollectionEntity implements Events { ); } + private Date nextDate(Date date) { + Calendar c = Calendar.getInstance(); + c.setTime(date); + c.add(Calendar.DATE, 1); + return c.getTime(); + } + }