data
Class CorrectionData_MC

java.lang.Object
  extended by data.CorrectionData
      extended by data.CorrectionData_MC
All Implemented Interfaces:
DataNode, Listable

public class CorrectionData_MC
extends CorrectionData

Das konkrete CorrectionData Objekt für MultipleChoice-Aufgaben. Ist nicht, wie Student-Ojekt persistent, sondern besitzt maximal Request-Scope.

Author:
Thorsten Berger

Nested Class Summary
 class CorrectionData_MC.MCElementHandler
          Klasse zum Zugriff auf die Datenstruktur des "mc"-Tags.
 
Field Summary
 
Fields inherited from class data.CorrectionData
CORRECTED, CORRECTING, CorrectionFieldID, CorrectorFieldID, INPROGRESS, NOTSOLVED, PointsFieldID, SeriesFieldID, SolutionFieldID, SOLVED, StatusFieldID
 
Constructor Summary
CorrectionData_MC(int serienID, Element seriesElement, data.Student student)
           
 
Method Summary
 boolean canContinue()
          Kann ein evtl. vorhandener letzter Versuch fortgesetzt werden?
 boolean canStartNewTry()
          Kann der Student einen neuen Lösungsversuch starten?
 void continueTry()
          Lösungsversuch fortsetzen.
 java.lang.String getAnswerLink()
           
 java.lang.String getCorrectedAnswerLink()
           
 CorrectionData_MC.MCElementHandler getMCElementHandler()
           
 TaskFileHandler getTaskFileHandler()
           
 void newTry()
          Neuen Lösungsversuch erstellen.
 void save(java.util.Map formData, java.lang.String formHash)
          Bearbeitungsstand zwischenspeichern.
 float submitSolution(java.util.Map formData, java.lang.String formHash)
          Lösungsversuch abschicken und Punktzahl berechnen.
 
Methods inherited from class data.CorrectionData
getCorrector, getDescription, getFieldDescriptions, getFieldValue, getIcon, getIdentification, getPoints, getSeries, getSeriesID, getStatus, getStudent, getStudentLogin, getSubNodes, isFolder, RadioButtonSelectable, setStatus
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CorrectionData_MC

public CorrectionData_MC(int serienID,
                         Element seriesElement,
                         data.Student student)
Parameters:
serienID -
seriesElement -
student -
Method Detail

getAnswerLink

public java.lang.String getAnswerLink()
Specified by:
getAnswerLink in class CorrectionData
See Also:
CorrectionData.getAnswerLink()

getCorrectedAnswerLink

public java.lang.String getCorrectedAnswerLink()
Specified by:
getCorrectedAnswerLink in class CorrectionData
See Also:
CorrectionData.getCorrectedAnswerLink()

canStartNewTry

public boolean canStartNewTry()
Kann der Student einen neuen Lösungsversuch starten? Es können alle Wahrheitskombinationen zwischen canContinue() und canStartNewTry() auftreten

Returns:

newTry

public void newTry()
            throws java.lang.IllegalStateException
Neuen Lösungsversuch erstellen. Fragen und Antworten zufällig auswählen.

Throws:
java.lang.IllegalStateException - falls max. Versuche abgelaufen

canContinue

public boolean canContinue()
Kann ein evtl. vorhandener letzter Versuch fortgesetzt werden?

Returns:
true, falls es einen letzten, fortsetzbaren Versuch gibt\ false sonst

save

public void save(java.util.Map formData,
                 java.lang.String formHash)
          throws java.lang.IllegalStateException
Bearbeitungsstand zwischenspeichern.

Throws:
java.lang.IllegalStateException

continueTry

public void continueTry()
                 throws java.lang.IllegalStateException
Lösungsversuch fortsetzen. Überprüft nur ob das erlaub ist.

Throws:
java.lang.IllegalStateException - falls Bearbeitungszeit abgelaufen

submitSolution

public float submitSolution(java.util.Map formData,
                            java.lang.String formHash)
                     throws java.lang.IllegalStateException
Lösungsversuch abschicken und Punktzahl berechnen. Aufgaben, bei denen keine Antwort selektiert wurde, gelten als nicht bearbeitet und werden mit 0 Punkten bewertet (statt negativePoints abzuziehen).

Parameters:
formData -
formHash -
Throws:
java.lang.IllegalStateException

getMCElementHandler

public CorrectionData_MC.MCElementHandler getMCElementHandler()

getTaskFileHandler

public TaskFileHandler getTaskFileHandler()