public class EventsLogger extends Object
由于在轨道传播期间触发事件探测器
,因此会调用特定的eventOccurred
方法。此类可用于添加全局日志记录功能,按照时间顺序(或反向时间顺序,如果传播是向后的)注册所有事件及其对应的状态。
此类通过在事件探测器注册到传播器之前包装用户提供的事件探测器
来工作。包装器监视对eventOccurred
的调用,并将相应的事件存储为EventsLogger.LoggedEvent
实例。传播完成后,用户可以通过调用方法getLoggedEvents()
一次性检索所有已发生的事件。
Modifier and Type | Class and Description |
---|---|
static class |
EventsLogger.LoggedEvent
记录事件条目的类。
|
Constructor and Description |
---|
EventsLogger()
简单构造函数。
|
Modifier and Type | Method and Description |
---|---|
void |
clearLoggedEvents()
清除已记录的事件。
|
List<EventsLogger.LoggedEvent> |
getLoggedEvents()
获取已记录事件的不可变副本。
|
<T extends EventDetector> |
monitorDetector(T monitoredDetector)
监视事件探测器。
|
public <T extends EventDetector> EventDetector monitorDetector(T monitoredDetector)
为了监视事件探测器,必须通过此方法包装它,如下所示:
Propagator propagator = new XyzPropagator(...); EventsLogger logger = new EventsLogger(); EventDetector detector = new UvwDetector(...); propagator.addEventDetector(logger.monitorDetector(detector));
请注意,由getEventDetector
方法返回的事件实例中的LoggedEvent
,返回的getLoggedEvents()
中的事件探测器是monitoredDetector
实例本身,而不是此方法返回的包装探测器。
T
- 通用版本的类类型
monitoredDetector
- 要监视的事件探测器
public void clearLoggedEvents()
public List<EventsLogger.LoggedEvent> getLoggedEvents()
该副本与日志记录器无关。即使调用clearLoggedEvents
方法并将日志记录器重新用于另一次传播,副本也会保留。
Copyright © 2002-2023 CS GROUP. All rights reserved.