private QuestionItemGroup createQuestionItemGroup( ScorisQig scorisQig, ExaminationPaper examinationPaper) throws TranslatorException { Integer maxResponses = null; QuestionItemGroup qig = new QuestionItemGroup(); QigAttributes qigAttributes = scorisQig.getQigAttributes(); Markscheme markscheme = examinationPaper.getMarkscheme(); throwExceptionForNullInput(qigAttributes, "qigAttributes"); throwExceptionForNullInput(qigAttributes.getGracePeriod(), "qigAttributes.getGracePeriod()"); qig.setQuestionItemGroupIdentifier(scorisQig.getId()); qig.setName(scorisQig.getName()); // qig.setDefaultGrace(qigAttributes.getGracePeriod()); qig.setDefaultGrace(qigAttributes.getGracePeriod() * 60); qig.setEStandardisationIndicator(deriveEStandardisationIndicator(scorisQig, examinationPaper)); throwExceptionForNullInput( qigAttributes.getConcurrentLimit(), "qigAttributes.getConcurrentLimit()"); qig.setMaximumConcurrentMarkingLimit(qigAttributes.getConcurrentLimit()); qig.setMaximumCacheLimit(getMaximumCacheLimit(qig)); qig.setMarkingTolerance( getMarkingTolerance(examinationPaper.getQualityModel(), scorisQig.getMarkGroup())); qig.setTMDTolerance( getTmdTolerance(examinationPaper.getQualityModel(), scorisQig.getMarkGroup())); maxResponses = markscheme.getTotalCompulsoryQuestions(); if (maxResponses == null) { maxResponses = markscheme.getNumberOfClusters(); } qig.setExpectedMaxResponses(maxResponses); qig.setMarkingApplicationIdentifier("SCORIS"); /* MarkingCount is a legacy field which is a required parameter * RM actually ignore it and calculate it themselves - Rebecca Richardson */ qig.setMarkingCount(1); qig.setEStandardisationCreationTargets(translateEStandardisationCreationTargets(scorisQig)); handleSeedingCreationTarget( scorisQig.getQigAttributes(), examinationPaper.getQualityModel(), qig.getEStandardisationCreationTargets()); qig.setCharacteristics(translateCharacteristics(scorisQig)); qig.setExceptionTypes(translateExceptionTypes(markscheme.getExceptions())); qig.setAnnotations(translateAnnotations(markscheme.getOrderedAnnotations())); /** we don't translate any sample rules as of now! */ return qig; }
public boolean deriveEStandardisationIndicator( ScorisQig scorisQig, ExaminationPaper examinationPaper) { QigAttributes qigAttributes = scorisQig.getQigAttributes(); return (examinationPaper .getQualityModel() .getQualityMethod() .equalsIgnoreCase(SEEDING_QUALITY_METHOD) || qigAttributes.hasTarget(TargetType.Creation, PRACTICE_TARGET_MODE) || qigAttributes.hasTarget(TargetType.Creation, STANDARDISATION_TARGET_MODE)); }