Search in sources :

Example 1 with Timing

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;
}
Also used : User(org.hisp.dhis.user.User) TrackerValidationReport(org.hisp.dhis.tracker.report.TrackerValidationReport) Timer(org.hisp.dhis.commons.timer.Timer) ValidationErrorReporter(org.hisp.dhis.tracker.report.ValidationErrorReporter) Timing(org.hisp.dhis.tracker.report.Timing)

Aggregations

Timer (org.hisp.dhis.commons.timer.Timer)1 Timing (org.hisp.dhis.tracker.report.Timing)1 TrackerValidationReport (org.hisp.dhis.tracker.report.TrackerValidationReport)1 ValidationErrorReporter (org.hisp.dhis.tracker.report.ValidationErrorReporter)1 User (org.hisp.dhis.user.User)1