Search in sources :

Example 26 with ItemSessionController

use of uk.ac.ed.ph.jqtiplus.running.ItemSessionController in project openolat by klemens.

the class UnkownItemEditorController method createNewItemSessionStateAndController.

private ItemSessionController createNewItemSessionStateAndController() {
    /* Resolve the underlying JQTI+ object */
    final ItemProcessingMap itemProcessingMap = new ItemProcessingInitializer(resolvedAssessmentItem, true).initialize();
    /* Create fresh state for session */
    final ItemSessionState itemSessionState = new ItemSessionState();
    final ItemSessionControllerSettings itemSessionControllerSettings = new ItemSessionControllerSettings();
    itemSessionControllerSettings.setTemplateProcessingLimit(25);
    itemSessionControllerSettings.setMaxAttempts(10);
    /* Create controller and wire up notification recorder */
    final ItemSessionController sessionController = new ItemSessionController(qtiService.jqtiExtensionManager(), itemSessionControllerSettings, itemProcessingMap, itemSessionState);
    sessionController.addNotificationListener(new NotificationRecorder(NotificationLevel.ERROR));
    Long randomSeed = new Random().nextLong();
    sessionController.setRandomSeed(randomSeed);
    sessionController.initialize(new Date());
    sessionController.performTemplateProcessing(new Date());
    return sessionController;
}
Also used : ItemSessionControllerSettings(uk.ac.ed.ph.jqtiplus.running.ItemSessionControllerSettings) ItemProcessingMap(uk.ac.ed.ph.jqtiplus.state.ItemProcessingMap) Random(java.util.Random) ItemSessionState(uk.ac.ed.ph.jqtiplus.state.ItemSessionState) NotificationRecorder(uk.ac.ed.ph.jqtiplus.notification.NotificationRecorder) ItemProcessingInitializer(uk.ac.ed.ph.jqtiplus.running.ItemProcessingInitializer) ItemSessionController(uk.ac.ed.ph.jqtiplus.running.ItemSessionController) Date(java.util.Date)

Aggregations

ItemSessionController (uk.ac.ed.ph.jqtiplus.running.ItemSessionController)26 ItemSessionState (uk.ac.ed.ph.jqtiplus.state.ItemSessionState)20 Date (java.util.Date)12 NotificationRecorder (uk.ac.ed.ph.jqtiplus.notification.NotificationRecorder)10 HashMap (java.util.HashMap)8 ItemProcessingContext (uk.ac.ed.ph.jqtiplus.running.ItemProcessingContext)8 ItemSessionControllerSettings (uk.ac.ed.ph.jqtiplus.running.ItemSessionControllerSettings)8 ItemProcessingMap (uk.ac.ed.ph.jqtiplus.state.ItemProcessingMap)8 Identifier (uk.ac.ed.ph.jqtiplus.types.Identifier)8 StringResponseData (uk.ac.ed.ph.jqtiplus.types.StringResponseData)8 FloatValue (uk.ac.ed.ph.jqtiplus.value.FloatValue)8 Value (uk.ac.ed.ph.jqtiplus.value.Value)8 File (java.io.File)6 FileOutputStream (java.io.FileOutputStream)6 IOException (java.io.IOException)6 URISyntaxException (java.net.URISyntaxException)6 Map (java.util.Map)6 Test (org.junit.Test)6 CandidateEvent (org.olat.ims.qti21.model.audit.CandidateEvent)6 JqtiExtensionManager (uk.ac.ed.ph.jqtiplus.JqtiExtensionManager)6