Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.java,v diff -u -r1.9 -r1.10 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.java 28 Nov 2005 22:51:32 -0000 1.9 +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.java 30 Nov 2005 04:44:51 -0000 1.10 @@ -1,14 +1,18 @@ package org.lamsfoundation.lams.tool.sbmt; 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.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.log4j.Logger; +import org.lamsfoundation.lams.contentrepository.ItemNotFoundException; +import org.lamsfoundation.lams.contentrepository.NodeKey; +import org.lamsfoundation.lams.contentrepository.RepositoryCheckedException; +import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; /** @@ -54,6 +58,8 @@ /** persistent field */ private boolean lockOnFinished; + private IToolContentHandler toolContentHandler; + /** full constructor */ public SubmitFilesContent(String title, String instructions, Set toolSession) { @@ -90,15 +96,14 @@ * * @param content The original tool content * @param newContentID The new SubmitFiles contentID + * @param toolContentHandler * @return SubmitFilesContent The new SubmitFilesContent object */ public static SubmitFilesContent newInstance(SubmitFilesContent content, - Long newContentID) { - - SubmitFilesContent newContent = new SubmitFilesContent(newContentID, - content.getTitle(), - content.getInstruction(), - new TreeSet()); + Long newContentID, IToolContentHandler toolContentHandler) { + content.toolContentHandler = toolContentHandler; + SubmitFilesContent newContent = (SubmitFilesContent) content.clone(); + newContent.setContentID(newContentID); return newContent; } @@ -307,21 +312,32 @@ //clone SubmitFIleSession object if(toolSession != null ){ Iterator iter = toolSession.iterator(); - Set set = new TreeSet(); + Set set = new HashSet(); while(iter.hasNext()) set.add(((SubmitFilesSession)iter.next()).clone()); ((SubmitFilesContent)obj).toolSession = set; } //clone InstructionFiles object if(instructionFiles != null ){ Iterator iter = instructionFiles.iterator(); - Set set = new TreeSet(); - while(iter.hasNext()) - set.add(((InstructionFiles)iter.next()).clone()); + Set set = new HashSet(); + while(iter.hasNext()){ + InstructionFiles file = (InstructionFiles)iter.next(); + //duplicate file node in repository + NodeKey keys = toolContentHandler.copyFile(file.getUuID()); + InstructionFiles newFile = (InstructionFiles) file.clone(); + newFile.setUuID(keys.getUuid()); + newFile.setVersionID(keys.getVersion()); + set.add(newFile); + } ((SubmitFilesContent)obj).instructionFiles= set; } } catch (CloneNotSupportedException e) { log.error("When clone " + SubmitFilesContent.class + " failed"); + } catch (ItemNotFoundException e) { + log.error("When clone " + SubmitFilesContent.class + " failed"); + } catch (RepositoryCheckedException e) { + log.error("When clone " + SubmitFilesContent.class + " failed"); } return obj; Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesSession.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesSession.java,v diff -u -r1.11 -r1.12 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesSession.java 28 Nov 2005 22:51:32 -0000 1.11 +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/SubmitFilesSession.java 30 Nov 2005 04:44:51 -0000 1.12 @@ -1,9 +1,9 @@ package org.lamsfoundation.lams.tool.sbmt; 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.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; @@ -108,7 +108,7 @@ //clone SubmissionDetails object if(submissionDetails != null){ Iterator iter = submissionDetails.iterator(); - Set set = new TreeSet(); + Set set = new HashSet(); while(iter.hasNext()) set.add(((SubmissionDetails)iter.next()).clone()); ((SubmitFilesSession)obj).submissionDetails = set; Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java,v diff -u -r1.31 -r1.32 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java 28 Nov 2005 22:51:32 -0000 1.31 +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java 30 Nov 2005 04:44:51 -0000 1.32 @@ -28,11 +28,11 @@ import java.util.Calendar; import java.util.Date; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.TreeSet; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; @@ -94,8 +94,7 @@ private ILearnerDAO learnerDAO; private IUserDAO userDAO; - private SbmtToolContentHandler sbmtToolContentHandler; - + private IToolContentHandler sbmtToolContentHandler; private ILamsToolService toolService; private ILearnerService learnerService; private IRepositoryService repositoryService; @@ -115,11 +114,9 @@ if ( fromContent == null ) { fromContent = createDefaultContent(fromContentId); } - SubmitFilesContent toContent = (SubmitFilesContent) fromContent.clone(); - //reset some new attributes for toContent - toContent.setContentID(toContentId); + SubmitFilesContent toContent = SubmitFilesContent.newInstance(fromContent,toContentId,sbmtToolContentHandler); //clear ToolSession - toContent.setToolSession(new TreeSet()); + toContent.setToolSession(new HashSet()); submitFilesContentDAO.insert(toContent); } @@ -694,7 +691,8 @@ //save default content by given ID. SubmitFilesContent content = new SubmitFilesContent(); - content = (SubmitFilesContent) defaultContent.clone(); + + content = SubmitFilesContent.newInstance(defaultContent,contentID,sbmtToolContentHandler); content.setContentID(contentID); saveSubmitFilesContent(content); @@ -751,15 +749,15 @@ /** * @return Returns the sbmtToolContentHandler. */ - public SbmtToolContentHandler getSbmtToolContentHandler() { + public IToolContentHandler getSbmtToolContentHandler() { return sbmtToolContentHandler; } /** * @param sbmtToolContentHandler The sbmtToolContentHandler to set. */ - public void setSbmtToolContentHandler(SbmtToolContentHandler toolContentHandler) { - this.sbmtToolContentHandler = toolContentHandler; + public void setSbmtToolContentHandler(IToolContentHandler sbmtToolContentHandler) { + this.sbmtToolContentHandler = sbmtToolContentHandler; } /** Index: lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/TestModel.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/Attic/TestModel.java,v diff -u -r1.4 -r1.5 --- lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/TestModel.java 26 Jul 2005 07:05:27 -0000 1.4 +++ lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/TestModel.java 30 Nov 2005 04:44:51 -0000 1.5 @@ -21,9 +21,9 @@ package org.lamsfoundation.lams.tool.sbmt.dao; import java.util.Calendar; +import java.util.HashSet; import java.util.Iterator; import java.util.Set; -import java.util.TreeSet; import junit.framework.TestCase; @@ -196,7 +196,7 @@ //fill sessions SubmitFilesSession session = new SubmitFilesSession(); fillSessionA(session); - Set sessions = new TreeSet(); + Set sessions = new HashSet(); sessions.add(session); content.setToolSession(sessions); } @@ -209,7 +209,7 @@ //fill sessions SubmitFilesSession session = new SubmitFilesSession(); fillSessionB(session); - Set sessions = new TreeSet(); + Set sessions = new HashSet(); sessions.add(session); content.setToolSession(sessions); } @@ -219,7 +219,7 @@ //fill details SubmissionDetails detail = new SubmissionDetails(); fillDetailA(detail); - Set details = new TreeSet(); + Set details = new HashSet(); details.add(detail); session.setSubmissionDetails(details); @@ -230,7 +230,7 @@ //fill details SubmissionDetails detail = new SubmissionDetails(); fillDetailB(detail); - Set details = new TreeSet(); + Set details = new HashSet(); details.add(detail); session.setSubmissionDetails(details); }