Serializable
public class EventsLogger extends Object implements Serializable
As events detectors
are triggered during
orbit propagation, an event specific eventOccurred
method is called. This class can be used to add a global logging
feature registering all events with their corresponding states in
a chronological sequence (or reverse-chronological if propagation
occurs backward).
This class works by wrapping user-provided events detectors
before they are registered to the propagator. The
wrapper monitor the calls to eventOccurred
and store the corresponding events as EventsLogger.LoggedEvent
instances.
After propagation is complete, the user can retrieve all the events
that have occurred at once by calling method getLoggedEvents()
.
Modifier and Type | Class | Description |
---|---|---|
static class |
EventsLogger.LoggedEvent |
Class for logged events entries.
|
Constructor | Description |
---|---|
EventsLogger() |
Simple constructor.
|
Modifier and Type | Method | Description |
---|---|---|
void |
clearLoggedEvents() |
Clear the logged events.
|
List<EventsLogger.LoggedEvent> |
getLoggedEvents() |
Get an immutable copy of the logged events.
|
<T extends EventDetector> |
monitorDetector(T monitoredDetector) |
Monitor an event detector.
|
public EventsLogger()
Build an empty logger for events detectors.
public <T extends EventDetector> EventDetector monitorDetector(T monitoredDetector)
In order to monitor an event detector, it must be wrapped thanks to this method as follows:
Propagator propagator = new XyzPropagator(...); EventsLogger logger = new EventsLogger(); EventDetector detector = new UvwDetector(...); propagator.addEventDetector(logger.monitorDetector(detector));
Note that the event detector returned by the getEventDetector
method in
LoggedEvent
instances returned by getLoggedEvents()
are the monitoredDetector
instances
themselves, not the wrapping detector returned by this method.
T
- class type for the generic versionmonitoredDetector
- event detector to monitorpublic void clearLoggedEvents()
public List<EventsLogger.LoggedEvent> getLoggedEvents()
The copy is independent of the logger. It is preserved
event if the clearLoggedEvents
method
is called and the logger reused in another propagation.
Copyright © 2002-2019 CS Systèmes d'information. All rights reserved.