diff --git a/src/main/java/org/olat/ims/qti/editor/beecom/objects/FIBQuestion.java b/src/main/java/org/olat/ims/qti/editor/beecom/objects/FIBQuestion.java index 16b64832b05c84f6de71a4e44df0395dc453f2c0..af3e0f6645b1577271b456f88d1bcaf3bdbc8805 100644 --- a/src/main/java/org/olat/ims/qti/editor/beecom/objects/FIBQuestion.java +++ b/src/main/java/org/olat/ims/qti/editor/beecom/objects/FIBQuestion.java @@ -350,24 +350,26 @@ public class FIBQuestion extends Question implements QTIObject { Element conditionvar = respcondition_fail.addElement("conditionvar"); Element or = conditionvar.addElement("or"); - for (Iterator i = getResponses().iterator(); i.hasNext();) { + for (Iterator<Response> i = getResponses().iterator(); i.hasNext();) { FIBResponse tmpResponse = (FIBResponse) i.next(); if (!tmpResponse.getType().equals(FIBResponse.TYPE_BLANK)) { continue; } String[] correctFIBs = tmpResponse.getCorrectBlank().split(";"); - Element not = or.addElement("not"); - Element orVal = not.addElement("or"); - for (int j = 0; j < correctFIBs.length; j++) { - String correctFIB = correctFIBs[j]; - if (correctFIB.length() > 0) { - Element varequal = orVal.addElement("varequal"); - varequal.addAttribute("respident", tmpResponse.getIdent()); - varequal.addAttribute("case", tmpResponse.getCaseSensitive()); - varequal.addCDATA(correctFIB); - } - } // for loop correct FIB + if(correctFIBs.length > 1) { + Element not = or.addElement("not"); + Element orVal = not.addElement("or"); + for (int j = 0; j < correctFIBs.length; j++) { + String correctFIB = correctFIBs[j]; + if (correctFIB.length() > 0) { + Element varequal = orVal.addElement("varequal"); + varequal.addAttribute("respident", tmpResponse.getIdent()); + varequal.addAttribute("case", tmpResponse.getCaseSensitive()); + varequal.addCDATA(correctFIB); + } + } // for loop correct FIB + } } // for loop if (isSingleCorrect){ @@ -386,15 +388,4 @@ public class FIBQuestion extends Question implements QTIObject { if (or.element("not") == null) resprocessingXML.remove(respcondition_fail); } - - private Collection<String> splitCorrectBlank(FIBResponse tmpResponse) { - String[] correctFIBs = tmpResponse.getCorrectBlank().split(";"); - Set<String> unique = new LinkedHashSet<String>(); - for(String correctFIB:correctFIBs) { - if(!unique.contains(correctFIB)) { - unique.add(correctFIB); - } - } - return unique; - } } \ No newline at end of file