| runOnce() |   | 31% |   | 22% | 20 | 21 | 76 | 112 | 0 | 1 |
| runWatch() |  | 0% |  | 0% | 17 | 17 | 58 | 58 | 1 | 1 |
| writeReport(List) |  | 0% |  | 0% | 6 | 6 | 28 | 28 | 1 | 1 |
| computeOutputPath(String, String, Main.TemplateKind) |  | 0% |  | 0% | 7 | 7 | 15 | 15 | 1 | 1 |
| buildItemsFromDataDirectory(Path) |  | 0% |  | 0% | 5 | 5 | 14 | 14 | 1 | 1 |
| processNode(Element) |  | 0% |  | 0% | 5 | 5 | 13 | 13 | 1 | 1 |
| emit(String, String, Map, String) |   | 40% |   | 46% | 5 | 8 | 12 | 21 | 0 | 1 |
| processYaml(Path) |  | 0% | | n/a | 1 | 1 | 12 | 12 | 1 | 1 |
| processCsv(Path) |  | 0% | | n/a | 1 | 1 | 10 | 10 | 1 | 1 |
| processExcel(Path) |  | 0% |  | 0% | 3 | 3 | 7 | 7 | 1 | 1 |
| processXmlOrHtml(Path) |  | 0% | | n/a | 1 | 1 | 8 | 8 | 1 | 1 |
| contextualiseDirectoryRecursive(Path) |  | 0% | | n/a | 1 | 1 | 6 | 6 | 1 | 1 |
| contextualise(Path) |   | 46% |   | 28% | 5 | 7 | 5 | 9 | 0 | 1 |
| wrapContext(Object) |   | 62% |   | 66% | 2 | 4 | 2 | 9 | 0 | 1 |
| main(String[]) |  | 0% | | n/a | 1 | 1 | 5 | 5 | 1 | 1 |
| mapRowToHeaders(String[], String[]) |  | 0% | | n/a | 1 | 1 | 3 | 3 | 1 | 1 |
| templateKind(String) |   | 60% |   | 83% | 1 | 4 | 2 | 6 | 0 | 1 |
| isSupportedDataFile(Path) |   | 67% |   | 37% | 7 | 9 | 2 | 9 | 0 | 1 |
| writeReport(String, String) |   | 87% |   | 75% | 1 | 3 | 4 | 18 | 0 | 1 |
| processProperties(Path) |   | 80% | | n/a | 0 | 1 | 2 | 8 | 0 | 1 |
| contextualiseDirectory(Path) |   | 76% | | n/a | 0 | 1 | 2 | 6 | 0 | 1 |
| extractContextNew(String) |   | 75% |   | 50% | 2 | 3 | 1 | 5 | 0 | 1 |
| createOutputStream(Path) |   | 71% |  | 100% | 0 | 2 | 2 | 5 | 0 | 1 |
| processJson(Path) |   | 71% | | n/a | 0 | 1 | 2 | 5 | 0 | 1 |
| streamFile(Path) |   | 45% | | n/a | 0 | 1 | 2 | 3 | 0 | 1 |
| writeTraceabilityReport(TraceabilityReport, Path) |   | 75% | | n/a | 0 | 1 | 2 | 8 | 0 | 1 |
| lambda$writeReport$0(Main.RunResult) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$runOnce$0(Main.RunResult) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$contextualiseDirectoryRecursive$0(Path) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$mapRowToHeaders$1(String[], Integer) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$mapRowToHeaders$0(String[], Integer) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$processCsv$0(String[], String[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| run() |  | 66% |   | 50% | 1 | 2 | 0 | 3 | 0 | 1 |
| lambda$processProperties$2(String, String) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$contextualiseDirectoryRecursive$1(Object, Object) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$contextualiseDirectory$1(Object, Object) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| lambda$mapRowToHeaders$2(String, String) | | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| extension(Path) |  | 100% |   | 50% | 1 | 2 | 0 | 5 | 0 | 1 |
| baseName(Path) |  | 100% |   | 50% | 1 | 2 | 0 | 5 | 0 | 1 |
| extractTemplateNew(String) |  | 100% |  | 100% | 0 | 2 | 0 | 2 | 0 | 1 |
| getLogFormat() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| lambda$contextualiseDirectory$0(Path) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$processProperties$1(Map.Entry) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$processProperties$0(Map.Entry) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| Main() | | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |