Class EventsLogger
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().
- Author:
- Luc Maisonobe
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classClass for logged events entries. -
Constructor Summary
ConstructorsConstructorDescriptionSimple constructor.EventsLogger(boolean logResetStates, List<EventsLogger.LoggedEvent> inputLog) Constructor from existing log with flag to keep reset states.EventsLogger(List<EventsLogger.LoggedEvent> inputLog) Constructor from existing log. -
Method Summary
Modifier and TypeMethodDescriptionvoidClear the logged events.Get an immutable copy of the logged events.<T extends EventDetector>
EventDetectormonitorDetector(T monitoredDetector) Monitor an event detector.
-
Constructor Details
-
EventsLogger
Constructor from existing log with flag to keep reset states.- Parameters:
logResetStates- flag to turn on the storage of reset states (if false, getter in event is set to null)inputLog- log to be kept at startBuild an non-empty logger for events detectors.
- Since:
- 14.0
-
EventsLogger
Constructor from existing log.- Parameters:
inputLog- log to be kept at startBuild an non-empty logger for events detectors.
- Since:
- 14.0
-
EventsLogger
public EventsLogger()Simple constructor.Build an empty logger for events detectors.
-
-
Method Details
-
monitorDetector
Monitor an event detector.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
getEventDetectormethod inLoggedEventinstances returned bygetLoggedEvents()are themonitoredDetectorinstances themselves, not the wrapping detector returned by this method.- Type Parameters:
T- class type for the generic version- Parameters:
monitoredDetector- event detector to monitor- Returns:
- the wrapping detector to add to the propagator
-
clearLoggedEvents
public void clearLoggedEvents()Clear the logged events. -
getLoggedEvents
Get an immutable copy of the logged events.The copy is independent of the logger. It is preserved event if the
clearLoggedEventsmethod is called and the logger reused in another propagation.- Returns:
- an immutable copy of the logged events
-