use of uk.ac.ed.ph.jqtiplus.node.outcome.declaration.OutcomeDeclaration in project OpenOLAT by OpenOLAT.
the class AssessmentItemBuilder method extractMaxScore.
private void extractMaxScore() {
OutcomeDeclaration outcomeDeclaration = assessmentItem.getOutcomeDeclaration(MAXSCORE_IDENTIFIER);
if (outcomeDeclaration != null) {
DefaultValue defaultValue = outcomeDeclaration.getDefaultValue();
if (defaultValue != null) {
Value maxScoreValue = defaultValue.evaluate();
if (maxScoreValue instanceof FloatValue) {
Double maxScore = new Double(((FloatValue) maxScoreValue).doubleValue());
maxScoreBuilder = new ScoreBuilder(maxScore, outcomeDeclaration);
}
}
}
}
use of uk.ac.ed.ph.jqtiplus.node.outcome.declaration.OutcomeDeclaration in project OpenOLAT by OpenOLAT.
the class AssessmentItemBuilder method build.
public final void build() {
List<OutcomeDeclaration> outcomeDeclarations = assessmentItem.getOutcomeDeclarations();
outcomeDeclarations.clear();
ResponseProcessing responseProcessing = assessmentItem.getResponseProcessing();
List<ResponseRule> responseRules = responseProcessing.getResponseRules();
responseRules.clear();
List<ResponseDeclaration> responseDeclarations = assessmentItem.getResponseDeclarations();
responseDeclarations.clear();
List<ModalFeedback> modalFeedbacks = assessmentItem.getModalFeedbacks();
modalFeedbacks.clear();
buildItemBody();
buildResponseAndOutcomeDeclarations();
buildModalFeedbacksAndHints(outcomeDeclarations, responseRules);
buildMinMaxScores(outcomeDeclarations, responseRules);
buildMainScoreRule(outcomeDeclarations, responseRules);
buildHint(outcomeDeclarations, responseRules);
}
use of uk.ac.ed.ph.jqtiplus.node.outcome.declaration.OutcomeDeclaration in project OpenOLAT by OpenOLAT.
the class AssessmentItemBuilder method buildMinMaxScores.
/**
* Add outcome declaration for score, min. score and mx. score.
* and the response rules which ensure that the score is between
* the max. score and min. score.
*
* @param outcomeDeclarations
* @param responseRules
*/
protected final void buildMinMaxScores(List<OutcomeDeclaration> outcomeDeclarations, List<ResponseRule> responseRules) {
if ((getMinScoreBuilder() != null && getMinScoreBuilder().getScore() != null) || (getMaxScoreBuilder() != null && getMaxScoreBuilder().getScore() != null)) {
OutcomeDeclaration outcomeDeclaration = AssessmentItemFactory.createOutcomeDeclarationForScore(assessmentItem);
outcomeDeclarations.add(outcomeDeclaration);
}
if (getMinScoreBuilder() != null && getMinScoreBuilder().getScore() != null) {
OutcomeDeclaration outcomeDeclaration = AssessmentItemFactory.createOutcomeDeclarationForMinScore(assessmentItem, getMinScoreBuilder().getScore().doubleValue());
outcomeDeclarations.add(outcomeDeclaration);
// ensure that the score is not smaller than min. score value
ResponseRule minScoreBoundResponseRule = AssessmentItemFactory.createMinScoreBoundLimitRule(assessmentItem.getResponseProcessing());
responseRules.add(minScoreBoundResponseRule);
}
if (getMaxScoreBuilder() != null && getMaxScoreBuilder().getScore() != null) {
OutcomeDeclaration outcomeDeclaration = AssessmentItemFactory.createOutcomeDeclarationForMaxScore(assessmentItem, getMaxScoreBuilder().getScore().doubleValue());
outcomeDeclarations.add(outcomeDeclaration);
// ensure that the score is not bigger than the max. score value
ResponseRule maxScoreBoundResponseRule = AssessmentItemFactory.createMaxScoreBoundLimitRule(assessmentItem.getResponseProcessing());
responseRules.add(maxScoreBoundResponseRule);
}
}
use of uk.ac.ed.ph.jqtiplus.node.outcome.declaration.OutcomeDeclaration in project OpenOLAT by OpenOLAT.
the class AssessmentItemBuilder method extractMinScore.
private void extractMinScore() {
OutcomeDeclaration outcomeDeclaration = assessmentItem.getOutcomeDeclaration(MINSCORE_IDENTIFIER);
if (outcomeDeclaration != null) {
DefaultValue defaultValue = outcomeDeclaration.getDefaultValue();
if (defaultValue != null) {
Value minScoreValue = defaultValue.evaluate();
if (minScoreValue instanceof FloatValue) {
Double minScore = new Double(((FloatValue) minScoreValue).doubleValue());
minScoreBuilder = new ScoreBuilder(minScore, outcomeDeclaration);
}
}
}
}
use of uk.ac.ed.ph.jqtiplus.node.outcome.declaration.OutcomeDeclaration in project OpenOLAT by OpenOLAT.
the class AssessmentTestComponentRenderer method renderPrintedVariable.
@Override
protected void renderPrintedVariable(AssessmentRenderer renderer, StringOutput sb, AssessmentObjectComponent component, ResolvedAssessmentItem resolvedAssessmentItem, ItemSessionState itemSessionState, PrintedVariable printedVar) {
AssessmentTestComponent testCmp = (AssessmentTestComponent) component;
Identifier identifier = printedVar.getIdentifier();
sb.append("<span class='printedVariable'>");
if (itemSessionState == null) {
Value outcomeValue = testCmp.getTestSessionController().getTestSessionState().getOutcomeValue(identifier);
if (outcomeValue != null) {
OutcomeDeclaration outcomeDeclaration = testCmp.getAssessmentTest().getOutcomeDeclaration(identifier);
renderPrintedVariable(renderer, sb, printedVar, outcomeDeclaration, outcomeValue);
}
} else {
Value templateValue = itemSessionState.getTemplateValues().get(identifier);
Value outcomeValue = itemSessionState.getOutcomeValues().get(identifier);
if (outcomeValue != null) {
OutcomeDeclaration outcomeDeclaration = resolvedAssessmentItem.getRootNodeLookup().extractIfSuccessful().getOutcomeDeclaration(identifier);
renderPrintedVariable(renderer, sb, printedVar, outcomeDeclaration, outcomeValue);
} else if (templateValue != null) {
TemplateDeclaration templateDeclaration = resolvedAssessmentItem.getRootNodeLookup().extractIfSuccessful().getTemplateDeclaration(identifier);
renderPrintedVariable(renderer, sb, printedVar, templateDeclaration, templateValue);
} else {
sb.append("(variable ").append(identifier.toString()).append(" was not found)");
}
}
sb.append("</span>");
}
Aggregations