org.opentestsystem.delivery.testreg.persistence.criteria.dependencyresolvers.AssessmentDependencyResolver.java Source code

Java tutorial

Introduction

Here is the source code for org.opentestsystem.delivery.testreg.persistence.criteria.dependencyresolvers.AssessmentDependencyResolver.java

Source

/*******************************************************************************
 * Educational Online Test Delivery System
 * Copyright (c) 2013 American Institutes for Research
 * 
 * Distributed under the AIR Open Source License, Version 1.0
 * See accompanying file AIR-License-1_0.txt or at
 * http://www.smarterapp.org/documents/American_Institutes_for_Research_Open_Source_Software_License.pdf
 ******************************************************************************/

package org.opentestsystem.delivery.testreg.persistence.criteria.dependencyresolvers;

import org.joda.time.DateTime;
import org.opentestsystem.delivery.Sb11TimeZoneBuilder;
import org.opentestsystem.delivery.testreg.domain.Assessment;
import org.opentestsystem.delivery.testreg.domain.Assessment.TestWindow;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
public class AssessmentDependencyResolver implements TestRegistrationEntitiesDependencyResolver<Assessment> {

    @Autowired
    private Sb11TimeZoneBuilder sb11TimeZoneBuilder;

    @Override
    public void resolveDependency(Assessment assessment) {
        for (TestWindow testWindow : assessment.getTestWindow()) {
            testWindow.setBeginWindow(resetToStartOfDay(testWindow.getBeginWindow()));
            testWindow.setEndWindow(resetToStartOfDay(testWindow.getEndWindow()));
        }
    }

    private DateTime resetToStartOfDay(DateTime dateTime) { //Always represent start of the day at the new TimeZone
        return dateTime.withZone(sb11TimeZoneBuilder.getDateTimeZone()).withTimeAtStartOfDay();
    }
}