/** * @todo NEED TO SET CORRECT, INCORRECT, GENERAL FEEDBACK Set the feedback texts for item. * @param itemTextList the text(s) for item */ public void setFeedback(ArrayList itemTextList, Item itemXml) { String xpath = "assessmentItem/itemBody/choiceInteraction/<simpleChoice/feedbackInline"; // for any answers that are now in the template, create a feedback int xpathIndex = 1; List list = itemXml.selectNodes(xpath); if (list == null) { return; } Iterator nodeIter = list.iterator(); Iterator iter = itemTextList.iterator(); Set answerSet = new HashSet(); char label = 'A'; boolean first = true; while (iter.hasNext()) { ItemTextIfc itemTextIfc = (ItemTextIfc) iter.next(); if (first) // then do once { // add in Correct and InCorrect Feedback String correctFeedback = itemTextIfc.getItem().getCorrectItemFeedback(); String incorrectFeedback = itemTextIfc.getItem().getInCorrectItemFeedback(); String generalFeedback = itemTextIfc.getItem().getGeneralItemFeedback(); log.debug("NEED TO SET CORRECT FEEDBACK: " + correctFeedback); log.debug("NEED TO SET INCORRECT FEEDBACK: " + incorrectFeedback); log.debug("NEED TO SET GENERAL FEEDBACK: " + incorrectFeedback); first = false; } // answer feedback answerSet = itemTextIfc.getAnswerSet(); Iterator aiter = answerSet.iterator(); while (aiter.hasNext()) { AnswerIfc answer = (AnswerIfc) aiter.next(); String value = answer.getGeneralAnswerFeedback(); log.debug("answer feedback: " + answer.getText()); Node node = null; try { boolean isInsert = true; if (nodeIter.hasNext()) { isInsert = false; } addIndexedEntry(itemXml, xpath, value, isInsert, xpathIndex, null); } catch (Exception ex) { log.error("Cannot process source document.", ex); } label++; xpathIndex++; } } }