|
7 | 7 | import java.util.Arrays;
|
8 | 8 | import java.util.List;
|
9 | 9 | import java.util.Objects;
|
| 10 | +import java.util.function.Supplier; |
10 | 11 |
|
11 | 12 | import org.hl7.fhir.instance.model.api.IBaseResource;
|
12 | 13 | import org.hl7.fhir.r4.model.Bundle;
|
@@ -142,19 +143,29 @@ public void validate(BundleValidator validator, String[] files)
|
142 | 143 | {
|
143 | 144 | logger.info("Validating {} from {}", r.getResource().getResourceType().name(), r.getFilename());
|
144 | 145 |
|
145 |
| - if (r.getResource() instanceof Bundle) |
| 146 | + if (r.getResource() instanceof Bundle b) |
146 | 147 | {
|
147 |
| - Bundle validationResult = validator.validate((Bundle) r.getResource()); |
| 148 | + Bundle validationResult = logExecutionTimeInMs(() -> validator.validate(b), "Bundle"); |
148 | 149 | System.out.println(getOutputParser().encodeResourceToString(validationResult));
|
149 | 150 | }
|
150 | 151 | else
|
151 | 152 | {
|
152 |
| - ValidationResult validationResult = validator.validate(r.getResource()); |
| 153 | + ValidationResult validationResult = logExecutionTimeInMs(() -> validator.validate(r.getResource()), |
| 154 | + r.getResource().getResourceType().name()); |
153 | 155 | System.out.println(getOutputParser().encodeResourceToString(validationResult.toOperationOutcome()));
|
154 | 156 | }
|
155 | 157 | });
|
156 | 158 | }
|
157 | 159 |
|
| 160 | + private <T> T logExecutionTimeInMs(Supplier<T> supplier, String resourceType) |
| 161 | + { |
| 162 | + long t0 = System.currentTimeMillis(); |
| 163 | + T t = supplier.get(); |
| 164 | + long t1 = System.currentTimeMillis(); |
| 165 | + logger.debug("{} validated in {} ms", resourceType, t1 - t0); |
| 166 | + return t; |
| 167 | + } |
| 168 | + |
158 | 169 | private IParser getOutputParser()
|
159 | 170 | {
|
160 | 171 | switch (output)
|
|
0 commit comments