/*
- * Copyright (c) 2017. Developed by Hedgecode.
+ * Copyright (c) 2017-2020. Developed by Hedgecode.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
package org.hedgecode.snooker.json;
+import java.io.Serializable;
import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
import java.util.List;
import org.hedgecode.snooker.api.Event;
*
* @author Dmitry Samoshin aka gotty
*/
-public class JsonEvents extends JsonCollectionEntity<Event> implements Events {
+public class JsonEvents extends JsonCollectionEntity<Event> implements Events, Serializable {
- protected JsonEvents(Event[] entities) {
+ private static final long serialVersionUID = 3333612126168481839L;
+
+ private static final JsonEvents EMPTY = new JsonEvents(new Event[0]);
+
+ JsonEvents(Event[] entities) {
super(entities);
}
- protected JsonEvents(List<Event> entities) {
+ JsonEvents(List<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();
+ }
+
}