| onDirectoryEvent(Path, FileEvent) |   | 88% |   | 58% | 4 | 7 | 3 | 27 | 0 | 1 |
| readConfig(FileEvent, Path, Path) |   | 58% | | n/a | 0 | 1 | 3 | 9 | 0 | 1 |
| start(boolean) |   | 88% |   | 75% | 2 | 5 | 3 | 21 | 0 | 1 |
| lambda$addEventListener$0(ConfigEventListener, ConfigEventListener) |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| lambda$addChangeListener$1(ConfigChangeListener, ConfigChangeListener) |   | 71% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| onFileEventInternal(Path, FileEvent, boolean) |  | 100% |   | 90% | 2 | 12 | 0 | 39 | 0 | 1 |
| ConfigWatcher(Path, ConfigReader, Function, Clock, DirWatcher, FileWatcher) |  | 100% |  | 100% | 0 | 2 | 0 | 16 | 0 | 1 |
| onConfigChange(ConfigChangeType, Object) |  | 100% |  | 100% | 0 | 2 | 0 | 9 | 0 | 1 |
| close() |  | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 |
| onConfigFileUpdate(ConfigChangeType, Path, String, ConfigEventListener.Status) |  | 100% |  | 100% | 0 | 2 | 0 | 7 | 0 | 1 |
| onConfigFileRead(FileEvent, Path, ConfigEventListener.Status) |  | 100% |  | 100% | 0 | 2 | 0 | 7 | 0 | 1 |
| addEventListener(ConfigEventListener) |  | 100% | | n/a | 0 | 1 | 0 | 6 | 0 | 1 |
| addChangeListener(ConfigChangeListener) |  | 100% | | n/a | 0 | 1 | 0 | 6 | 0 | 1 |
| onFileEvent(Path, FileEvent) |  | 100% | | n/a | 0 | 1 | 0 | 7 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| ConfigWatcher(Path, ConfigReader, Function, Clock) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getLoadedConfigMap() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| ConfigWatcher(Path, ConfigReader, Function) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| lambda$static$2() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| start() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| toString() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getConfigDir() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |