mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-21 03:30:12 +00:00
# added new RaceLogRaceStatus FINISHING
# added new generic event method to RaceLogListener
This commit is contained in:
1 parent
4112f6919c
commit
02c70e69b4
12 files changed
+56
-9
No files matched your search
+6
@@ -6,6 +6,7 @@ import com.mongodb.DBObject;
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.persistence.MongoObjectFactory;
|
||||
import com.sap.sailing.domain.racelog.RaceColumnIdentifier;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogFlagEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogListener;
|
||||
import com.sap.sailing.domain.racelog.RaceLogStartTimeEvent;
|
||||
@@ -40,4 +41,9 @@ public class MongoRaceLogListener implements RaceLogListener {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void eventReceived(RaceLogEvent event) {
|
||||
// do nothing, we are interested in the typed events.
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,7 +1,25 @@
|
||||
package com.sap.sailing.domain.racelog;
|
||||
|
||||
/**
|
||||
* Implementors may use this interface to listen for added {@link RaceLogEvent}.
|
||||
*/
|
||||
public interface RaceLogListener {
|
||||
|
||||
/**
|
||||
* This method is called for any event that is added to the host.
|
||||
* @param event
|
||||
*/
|
||||
void eventReceived(RaceLogEvent event);
|
||||
|
||||
/**
|
||||
* This method is called additionally if the event is a {@link RaceLogFlagEvent}.
|
||||
* @param flagEvent
|
||||
*/
|
||||
void flagEventReceived(RaceLogFlagEvent flagEvent);
|
||||
|
||||
/**
|
||||
* This method is called additionally if the event is a {@link RaceLogStartTimeEvent}.
|
||||
* @param startTimeEvent
|
||||
*/
|
||||
void startTimeEventReceived(RaceLogStartTimeEvent startTimeEvent);
|
||||
}
|
||||
+1
-1
@@ -5,5 +5,5 @@ package com.sap.sailing.domain.racelog;
|
||||
*
|
||||
*/
|
||||
public enum RaceLogRaceStatus {
|
||||
UNKNOWN, UNSCHEDULED, SCHEDULED, STARTPHASE, RUNNING, FINISHED
|
||||
UNKNOWN, UNSCHEDULED, SCHEDULED, STARTPHASE, RUNNING, FINISHING, FINISHED
|
||||
}
|
||||
@@ -43,6 +43,7 @@ public class RaceLogImpl extends TrackImpl<RaceLogEvent> implements RaceLog {
|
||||
}
|
||||
|
||||
private void notifyListenersAboutReceive(RaceLogEvent event) {
|
||||
notifiyListenersAboutReceivedEvent(event);
|
||||
if (event instanceof RaceLogFlagEvent) {
|
||||
notifiyListenersAboutReceivedFlagEvent((RaceLogFlagEvent) event);
|
||||
} else if (event instanceof RaceLogStartTimeEvent) {
|
||||
@@ -50,6 +51,19 @@ public class RaceLogImpl extends TrackImpl<RaceLogEvent> implements RaceLog {
|
||||
}
|
||||
}
|
||||
|
||||
private void notifiyListenersAboutReceivedEvent(RaceLogEvent event) {
|
||||
synchronized (listeners) {
|
||||
for (RaceLogListener listener : listeners) {
|
||||
try {
|
||||
listener.eventReceived(event);
|
||||
} catch (Throwable t) {
|
||||
logger.log(Level.SEVERE, "RaceLogListener " + listener + " threw exception " + t.getMessage());
|
||||
logger.throwing(RaceLogImpl.class.getName(), "notifiyListenersAboutReceivedEvent(RaceLogEvent)", t);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void notifiyListenersAboutReceivedStartTimeEvent(RaceLogStartTimeEvent event) {
|
||||
synchronized (listeners) {
|
||||
for (RaceLogListener listener : listeners) {
|
||||
|
||||
Reference in new issue
Block a user