/* Copyright (c) 2012-2013, University of Edinburgh. * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * * Redistributions of source code must retain the above copyright notice, this * list of conditions and the following disclaimer. * * * Redistributions in binary form must reproduce the above copyright notice, this * list of conditions and the following disclaimer in the documentation and/or * other materials provided with the distribution. * * * Neither the name of the University of Edinburgh nor the names of its * contributors may be used to endorse or promote products derived from this * software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * * This software is derived from (and contains code from) QTItools and MathAssessEngine. * QTItools is (c) 2008, University of Southampton. * MathAssessEngine is (c) 2010, University of Edinburgh. */ package org.olat.ims.qti21.model.audit; import uk.ac.ed.ph.jqtiplus.node.test.NavigationMode; import uk.ac.ed.ph.jqtiplus.node.test.TestPart; /** * Encapsulates the test-specific events that can arise when delivering * a test within a {@link CandidateSession} * * @author David McKain */ public enum CandidateTestEventType { /* NB: Observe maximum length for mapped column set in CandidateEvent */ //1234567890123456789012345678901234567890 /** * Test has been entered. * <p> * (In test having one {@link TestPart}, we also attempt * to enter this automatically. Otherwise, the first {@link TestPart} has to be * entered explicitly by the candidate via {@link #ADVANCE_TEST_PART}.) */ ENTER_TEST, /** * Presentation of navigation menu for the current {@link TestPart}, when in nonlinear * mode and while the {@link TestPart} is still interacting. */ SELECT_MENU, /** * Ends the current {@link TestPart} and moves it into review state */ END_TEST_PART, /** * Exits the current {@link TestPart} (if currently inside one), then advances to the next * available {@link TestPart}, or exits the test if there are no more available. */ ADVANCE_TEST_PART, /** * Exits the test, either after the combined {@link TestPart} and test feedback page * (for single-part tests), or the standalone test feedback page for multi-part tests. */ EXIT_TEST, /** * Exits the test because time limit */ EXIT_DUE_TIME_LIMIT, /** Selection of a particular item for interaction (in {@link NavigationMode#NONLINEAR}) */ SELECT_ITEM, /** Selection of the next item for interaction */ NEXT_ITEM, /** * Finish interaction of item (in {@link NavigationMode#LINEAR}), moving to the next * enterable item in the testPart. */ FINISH_ITEM, /** * Finish interaction of item (in {@link NavigationMode#LINEAR}), with no further * enterable items in the testPart, thus causing the current testPart to end. */ FINISH_FINAL_ITEM, /** Item Event within the currently-selected item */ ITEM_EVENT, /** Return to Test Part review (while already in review state, i.e. after {@link #REVIEW_ITEM} */ REVIEW_TEST_PART, /** Review of a particular item */ REVIEW_ITEM, /** Solution of a particular item (in review state) */ SOLUTION_ITEM, SUSPEND, ; }