Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/chatApplicationContext.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/chatApplicationContext.xml,v
diff -u -r1.4 -r1.5
--- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/chatApplicationContext.xml 23 May 2006 04:08:40 -0000 1.4
+++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/chatApplicationContext.xml 7 Jun 2006 01:53:04 -0000 1.5
@@ -38,6 +38,7 @@
+
Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/Chat.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/Chat.java,v
diff -u -r1.4 -r1.5
--- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/Chat.java 23 May 2006 04:23:10 -0000 1.4
+++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/Chat.java 7 Jun 2006 01:53:04 -0000 1.5
@@ -85,6 +85,7 @@
private Set chatSessions;
+ //*********** NON Persisit fields
private IToolContentHandler toolContentHandler;
// Constructors
@@ -402,4 +403,12 @@
}
return chat;
}
+
+ public IToolContentHandler getToolContentHandler() {
+ return toolContentHandler;
+ }
+
+ public void setToolContentHandler(IToolContentHandler toolContentHandler) {
+ this.toolContentHandler = toolContentHandler;
+ }
}
Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/ChatService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/ChatService.java,v
diff -u -r1.15 -r1.16
--- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/ChatService.java 6 Jun 2006 04:03:33 -0000 1.15
+++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/ChatService.java 7 Jun 2006 01:53:04 -0000 1.16
@@ -28,6 +28,7 @@
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
+import java.util.Set;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
@@ -51,6 +52,9 @@
import org.lamsfoundation.lams.contentrepository.service.RepositoryProxy;
import org.lamsfoundation.lams.contentrepository.service.SimpleCredentials;
import org.lamsfoundation.lams.learning.service.ILearnerService;
+import org.lamsfoundation.lams.learningdesign.service.ExportToolContentException;
+import org.lamsfoundation.lams.learningdesign.service.IExportToolContentService;
+import org.lamsfoundation.lams.learningdesign.service.ImportToolContentException;
import org.lamsfoundation.lams.tool.ToolContentManager;
import org.lamsfoundation.lams.tool.ToolSessionExportOutputData;
import org.lamsfoundation.lams.tool.ToolSessionManager;
@@ -106,6 +110,8 @@
private IRepositoryService repositoryService = null;
+ private IExportToolContentService exportContentService;
+
public ChatService() {
super();
// TODO Auto-generated constructor stub
@@ -240,7 +246,25 @@
* @throws ToolException if any other error occurs
*/
- public void exportToolContent(Long toolContentId, String toPath) throws DataMissingException, ToolException {
+ public void exportToolContent(Long toolContentId, String rootPath) throws DataMissingException, ToolException {
+ Chat toolContentObj = chatDAO.getByContentId(toolContentId);
+ if(toolContentObj == null)
+ throw new DataMissingException("Unable to find tool content by given id :" + toolContentId);
+
+ //set ResourceToolContentHandler as null to avoid copy file node in repository again.
+ toolContentObj = Chat.newInstance(toolContentObj,toolContentId,null);
+ toolContentObj.setToolContentHandler(null);
+ toolContentObj.setChatSessions(null);
+ Set atts = toolContentObj.getChatAttachments();
+ for(ChatAttachment att: atts){
+ att.setChat(null);
+ }
+ try {
+ exportContentService.registerFileClassForExport(ChatAttachment.class.getName(),"fileUuid","fileVersionId");
+ exportContentService.exportToolContent( toolContentId, toolContentObj,chatToolContentHandler, rootPath);
+ } catch (ExportToolContentException e) {
+ throw new ToolException(e);
+ }
}
/**
@@ -249,7 +273,23 @@
* @throws ToolException if any other error occurs
*/
public void importToolContent(Long toolContentId, Integer newUserUid, String toolContentPath) throws ToolException {
-
+ try {
+ exportContentService.registerFileClassForImport(ChatAttachment.class.getName()
+ ,"fileUuid","fileVersionId","fileName","fileType",null,null);
+
+ Object toolPOJO = exportContentService.importToolContent(toolContentPath,chatToolContentHandler);
+ if(!(toolPOJO instanceof Chat))
+ throw new ImportToolContentException("Import Chat tool content failed. Deserialized object is " + toolPOJO);
+ Chat toolContentObj = (Chat) toolPOJO;
+
+// reset it to new toolContentId
+ toolContentObj.setToolContentId(toolContentId);
+ toolContentObj.setCreateBy(new Long(newUserUid.longValue()));
+
+ chatDAO.saveOrUpdate(toolContentObj);
+ } catch (ImportToolContentException e) {
+ throw new ToolException(e);
+ }
}
/* ********** IChatService Methods ************************************** */
@@ -684,4 +724,12 @@
this.learnerService = learnerService;
}
+ public IExportToolContentService getExportContentService() {
+ return exportContentService;
+ }
+
+ public void setExportContentService(IExportToolContentService exportContentService) {
+ this.exportContentService = exportContentService;
+ }
+
}