X-Git-Url: https://git.hedgecode.org/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Forg%2Fhedgecode%2Fsnooker%2Fjson%2FJsonEvents.java;h=3800d497918c1ac0e06d53d04f616d89c1c20f27;hb=5f3c185a78588a9d4f6a5f3cc459571de6d80c89;hp=78474de99ff1fcfc7e6708ab24e12f8504632497;hpb=8a35619be41b2db6d339f8f0a7f3ba0fc1ca1ed4;p=snooker-score-api.git diff --git a/src/main/java/org/hedgecode/snooker/json/JsonEvents.java b/src/main/java/org/hedgecode/snooker/json/JsonEvents.java index 78474de..3800d49 100644 --- a/src/main/java/org/hedgecode/snooker/json/JsonEvents.java +++ b/src/main/java/org/hedgecode/snooker/json/JsonEvents.java @@ -17,6 +17,8 @@ package org.hedgecode.snooker.json; import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; import java.util.List; import org.hedgecode.snooker.api.Event; @@ -31,6 +33,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 +49,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 +58,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 +67,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 +76,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 +85,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 +94,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 +103,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 +112,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 +120,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 +130,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 +141,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 +160,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(); + } + }