Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/chatApplicationContext.xml
===================================================================
diff -u -r7312ae351ea504413d8b1976d9ed866c91eceb95 -rb1386844a7b440e82e8f1f02e5ce840ffbf19ed3
--- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/chatApplicationContext.xml (.../chatApplicationContext.xml) (revision 7312ae351ea504413d8b1976d9ed866c91eceb95)
+++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/chatApplicationContext.xml (.../chatApplicationContext.xml) (revision b1386844a7b440e82e8f1f02e5ce840ffbf19ed3)
@@ -38,6 +38,7 @@
+
Index: lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/Chat.java
===================================================================
diff -u -r3c0a84b7023214fcdfc7e023f810aea87166957c -rb1386844a7b440e82e8f1f02e5ce840ffbf19ed3
--- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/Chat.java (.../Chat.java) (revision 3c0a84b7023214fcdfc7e023f810aea87166957c)
+++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/model/Chat.java (.../Chat.java) (revision b1386844a7b440e82e8f1f02e5ce840ffbf19ed3)
@@ -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
===================================================================
diff -u -rcc504e79fcfddaab61fdb673e9866a1b57c2d12c -rb1386844a7b440e82e8f1f02e5ce840ffbf19ed3
--- lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/ChatService.java (.../ChatService.java) (revision cc504e79fcfddaab61fdb673e9866a1b57c2d12c)
+++ lams_tool_chat/src/java/org/lamsfoundation/lams/tool/chat/service/ChatService.java (.../ChatService.java) (revision b1386844a7b440e82e8f1f02e5ce840ffbf19ed3)
@@ -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;
+ }
+
}