Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McOptsContent.java =================================================================== diff -u -r25a3cd766f44f20c25042ad630f87b5b79a53671 -r47e4242c8fd587e411182ce5fc00fc525c7e07b4 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McOptsContent.java (.../McOptsContent.java) (revision 25a3cd766f44f20c25042ad630f87b5b79a53671) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McOptsContent.java (.../McOptsContent.java) (revision 47e4242c8fd587e411182ce5fc00fc525c7e07b4) @@ -25,8 +25,10 @@ import java.io.Serializable; import java.util.HashSet; import java.util.Set; +import java.util.TreeSet; import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.log4j.Logger; /** @@ -37,7 +39,8 @@ * * @author Ozgur Demirtas */ -public class McOptsContent implements Serializable { +public class McOptsContent implements Serializable, Comparable { + static Logger logger = Logger.getLogger(McOptsContent.class.getName()); /** identifier field */ private Long uid; @@ -76,7 +79,18 @@ this.mcUsrAttempts=mcUsrAttempts; } + public static McOptsContent newInstance(McOptsContent mcOptsContent, + McQueContent newMcQueContent) + + { + McOptsContent newMcOptsContent = new McOptsContent(mcOptsContent.isCorrectOption(), + mcOptsContent.getMcQueOptionText(), + newMcQueContent, + new TreeSet()); + return newMcOptsContent; + } + /** default constructor */ public McOptsContent() { } @@ -162,4 +176,14 @@ public void setMcQueContentId(Long mcQueContentId) { this.mcQueContentId = mcQueContentId; } + + public int compareTo(Object o) + { + McOptsContent optContent = (McOptsContent) o; + //if the object does not exist yet, then just return any one of 0, -1, 1. Should not make a difference. + if (mcQueOptionId == null) + return 1; + else + return (int) (mcQueOptionId.longValue() - optContent.mcQueOptionId.longValue()); + } } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McQueContent.java =================================================================== diff -u -r25a3cd766f44f20c25042ad630f87b5b79a53671 -r47e4242c8fd587e411182ce5fc00fc525c7e07b4 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McQueContent.java (.../McQueContent.java) (revision 25a3cd766f44f20c25042ad630f87b5b79a53671) +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McQueContent.java (.../McQueContent.java) (revision 47e4242c8fd587e411182ce5fc00fc525c7e07b4) @@ -24,10 +24,12 @@ import java.io.Serializable; import java.util.HashSet; +import java.util.Iterator; import java.util.Set; import java.util.TreeSet; import org.apache.commons.lang.builder.ToStringBuilder; +import org.apache.log4j.Logger; /** @@ -38,7 +40,8 @@ * * @author Ozgur Demirtas */ -public class McQueContent implements Serializable { +public class McQueContent implements Serializable, Comparable { + static Logger logger = Logger.getLogger(McQueContent.class.getName()); /** identifier field */ private Long uid; @@ -178,18 +181,40 @@ * @return the new qa question content object */ public static McQueContent newInstance(McQueContent queContent, - McContent newMcContent, - McQueContent parentQuestion) + McContent newMcContent) + { McQueContent newQueContent = new McQueContent(queContent.getQuestion(), queContent.getDisplayOrder(), queContent.getWeight(), - queContent.isDisabled(), + queContent.isDisabled(), + queContent.getFeedbackCorrect(), + queContent.getFeedbackCorrect(), newMcContent, new TreeSet(), new TreeSet()); + + newQueContent.setMcOptionsContents(queContent.deepCopyMcOptionsContent(newQueContent)); return newQueContent; } + + + public Set deepCopyMcOptionsContent(McQueContent newQueContent) + { + Set newMcOptionsContent = new TreeSet(); + for (Iterator i = this.getMcOptionsContents().iterator(); i.hasNext();) + { + McOptsContent mcOptsContent = (McOptsContent) i.next(); + McOptsContent mcNewOptsContent= McOptsContent.newInstance(mcOptsContent,newQueContent); + + if (mcNewOptsContent.getMcQueContent() != null) + { + newMcOptionsContent.add(mcNewOptsContent); + } + } + return newMcOptionsContent; + } + public Long getUid() { return this.uid; @@ -319,4 +344,14 @@ public void setFeedbackIncorrect(String feedbackIncorrect) { this.feedbackIncorrect = feedbackIncorrect; } + + public int compareTo(Object o) + { + McQueContent queContent = (McQueContent) o; + //if the object does not exist yet, then just return any one of 0, -1, 1. Should not make a difference. + if (mcQueContentId == null) + return 1; + else + return (int) (mcQueContentId.longValue() - queContent.mcQueContentId.longValue()); + } }