public class MultiEventsLogger extends Object
This class is copied from EventsLogger
and adapted to multi
propagation.
As multi 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 multi events detectors
before they are
registered to the propagator. The wrapper monitor the calls to
eventOccurred
and store the corresponding
events as MultiEventsLogger.MultiLoggedEvent
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 and Description |
---|---|
static class |
MultiEventsLogger.MultiLoggedEvent
Class for logged events entries.
|
Constructor and Description |
---|
MultiEventsLogger()
Simple constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
clearLoggedEvents()
Clear the logged events.
|
List<MultiEventsLogger.MultiLoggedEvent> |
getLoggedEvents()
Get an immutable copy of the logged events.
|
MultiEventDetector |
monitorDetector(MultiEventDetector monitoredDetector)
Monitor a multi event detector.
|
public MultiEventsLogger()
Build an empty logger for events detectors.
public MultiEventDetector monitorDetector(MultiEventDetector monitoredDetector)
In order to monitor a multi event detector, it must be wrapped thanks to this method as follows:
MultiPropagator propagator = new XyzPropagator(...); MultiEventsLogger logger = new MultiEventsLogger(); MultiEventDetector 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.
monitoredDetector
- multi event detector to monitorpublic void clearLoggedEvents()
public List<MultiEventsLogger.MultiLoggedEvent> 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 © 2023 CNES. All rights reserved.