use of org.hisp.dhis.tracker.report.Timing in project dhis2-core by dhis2.
the class DefaultTrackerValidationService method validate.
private TrackerValidationReport validate(TrackerBundle bundle, List<TrackerValidationHook> hooks) {
TrackerValidationReport validationReport = new TrackerValidationReport();
User user = bundle.getUser();
if ((user == null || user.isSuper()) && ValidationMode.SKIP == bundle.getValidationMode()) {
log.warn("Skipping validation for metadata import by user '" + bundle.getUsername() + "'. Not recommended.");
return validationReport;
}
// Note that the bundle gets cloned internally, so the original bundle
// is always available
TrackerImportValidationContext context = new TrackerImportValidationContext(bundle);
ValidationErrorReporter reporter = new ValidationErrorReporter(context);
try {
for (TrackerValidationHook hook : hooks) {
Timer hookTimer = Timer.startTimer();
hook.validate(reporter, context);
validationReport.addTiming(new Timing(hook.getClass().getName(), hookTimer.toString()));
}
} catch (ValidationFailFastException e) {
// exit early when in FAIL_FAST validation mode
}
validationReport.addErrors(reporter.getReportList()).addWarnings(reporter.getWarningsReportList());
removeInvalidObjects(bundle, reporter);
return validationReport;
}
Aggregations