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;
*/
public class JsonEvents extends JsonCollectionEntity<Event> implements Events {
+ private static final JsonEvents EMPTY = new JsonEvents(new Event[0]);
+
protected JsonEvents(Event[] entities) {
super(entities);
}
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
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
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
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
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
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
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
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
List<Event> 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
List<Event> 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
List<Event> 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
);
}
+ private Date nextDate(Date date) {
+ Calendar c = Calendar.getInstance();
+ c.setTime(date);
+ c.add(Calendar.DATE, 1);
+ return c.getTime();
+ }
+
}