Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/pojos/VoteUploadedFile.java =================================================================== diff -u -rae28185f07883077586773f760d1bde953e2d9bf -r683ee20a2363e56d2b63c07119a79f5a1aa0377f --- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/pojos/VoteUploadedFile.java (.../VoteUploadedFile.java) (revision ae28185f07883077586773f760d1bde953e2d9bf) +++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/pojos/VoteUploadedFile.java (.../VoteUploadedFile.java) (revision 683ee20a2363e56d2b63c07119a79f5a1aa0377f) @@ -24,6 +24,7 @@ import java.io.Serializable; +import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.log4j.Logger; import org.lamsfoundation.lams.contentrepository.ItemNotFoundException; @@ -108,10 +109,14 @@ try { - NodeKey copiedNodeKey = toolContentHandler.copyFile(new Long(mcUploadedFile.getUuid())); - logger.debug("copied NodeKey: " + copiedNodeKey); - logger.debug("copied NodeKey uuid: " + copiedNodeKey.getUuid().toString()); - newMcUploadedFile = new VoteUploadedFile(copiedNodeKey.getUuid().toString(), + String fileUuid = mcUploadedFile.getUuid(); + if(toolContentHandler != null){ + NodeKey copiedNodeKey = toolContentHandler.copyFile(new Long(mcUploadedFile.getUuid())); + logger.debug("copied NodeKey: " + copiedNodeKey); + logger.debug("copied NodeKey uuid: " + copiedNodeKey.getUuid().toString()); + fileUuid = copiedNodeKey.getUuid().toString(); + } + newMcUploadedFile = new VoteUploadedFile(fileUuid, mcUploadedFile.isFileOnline(), mcUploadedFile.getFilename(), newMcContent); @@ -227,4 +232,20 @@ public void setVoteContent(VoteContent voteContent) { this.voteContent = voteContent; } + + public String getFileProperty() { + if (isFileOnline()) + { + return IToolContentHandler.TYPE_ONLINE; + } + else + return IToolContentHandler.TYPE_OFFLINE; + } + + public void setFileProperty(String fileProperty) { + if(StringUtils.equals(IToolContentHandler.TYPE_ONLINE,fileProperty)) + this.fileOnline = true; + else + this.fileOnline = false; + } } Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteServicePOJO.java =================================================================== diff -u -rf4622422fe3e19c1205d05b4e7d90a5ab5f48cd0 -r683ee20a2363e56d2b63c07119a79f5a1aa0377f --- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteServicePOJO.java (.../VoteServicePOJO.java) (revision f4622422fe3e19c1205d05b4e7d90a5ab5f48cd0) +++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteServicePOJO.java (.../VoteServicePOJO.java) (revision 683ee20a2363e56d2b63c07119a79f5a1aa0377f) @@ -45,6 +45,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.lesson.Lesson; import org.lamsfoundation.lams.tool.IToolVO; import org.lamsfoundation.lams.tool.ToolContentManager; @@ -107,6 +110,8 @@ private ILearnerService learnerService; private IAuditService auditService; private ILamsToolService toolService; + private IExportToolContentService exportContentService; + private IToolContentHandler voteToolContentHandler = null; public VoteServicePOJO(){} @@ -1568,7 +1573,30 @@ * @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 { + VoteContent toolContentObj = voteContentDAO.findVoteContentById(toolContentId); + if(toolContentObj == null) + throw new DataMissingException("Unable to find tool content by given id :" + toolContentId); + + try { + //set ToolContentHandler as null to avoid copy file node in repository again. + toolContentObj = VoteContent.newInstance(null,toolContentObj,toolContentId); + + //clear unnecessary information attach + toolContentObj.setVoteSessions(null); + Set ques = toolContentObj.getVoteQueContents(); + for(VoteQueContent que : ques){ + que.setMcUsrAttempts(null); + } + exportContentService.registerFileClassForExport(VoteUploadedFile.class.getName(),"uuid",null); + exportContentService.exportToolContent( toolContentId, toolContentObj,voteToolContentHandler, rootPath); + } catch (ExportToolContentException e) { + throw new ToolException(e); + } catch (ItemNotFoundException e) { + throw new ToolException(e); + } catch (RepositoryCheckedException e) { + throw new ToolException(e); + } } /** @@ -1577,7 +1605,23 @@ * @throws ToolException if any other error occurs */ public void importToolContent(Long toolContentId, Integer newUserUid, String toolContentPath) throws ToolException { - + try { + exportContentService.registerFileClassForImport(VoteUploadedFile.class.getName() + ,"uuid",null,"filename","fileProperty",null,null); + + Object toolPOJO = exportContentService.importToolContent(toolContentPath,voteToolContentHandler); + if(!(toolPOJO instanceof VoteContent)) + throw new ImportToolContentException("Import Vote tool content failed. Deserialized object is " + toolPOJO); + VoteContent toolContentObj = (VoteContent) toolPOJO; + +// reset it to new toolContentId + toolContentObj.setVoteContentId(toolContentId); + toolContentObj.setCreatedBy(newUserUid); + + voteContentDAO.saveVoteContent(toolContentObj); + } catch (ImportToolContentException e) { + throw new ToolException(e); + } } /** @@ -2517,4 +2561,14 @@ public void setAuditService(IAuditService auditService) { this.auditService = auditService; } + + public IExportToolContentService getExportContentService() { + return exportContentService; + } + + + public void setExportContentService(IExportToolContentService exportContentService) { + this.exportContentService = exportContentService; + } + } Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/voteApplicationContext.xml =================================================================== diff -u -r05cf3edcddcb1c1f66a7722c06631400c06ea96d -r683ee20a2363e56d2b63c07119a79f5a1aa0377f --- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/voteApplicationContext.xml (.../voteApplicationContext.xml) (revision 05cf3edcddcb1c1f66a7722c06631400c06ea96d) +++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/voteApplicationContext.xml (.../voteApplicationContext.xml) (revision 683ee20a2363e56d2b63c07119a79f5a1aa0377f) @@ -78,7 +78,8 @@ - + +