Index: lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsCoreToolService.java =================================================================== diff -u -r97612142f4697066beb66064e83ff31fef1712b9 -r7063c259a54239643a9ef50c3bb36ca9f6e7fbb5 --- lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsCoreToolService.java (.../ILamsCoreToolService.java) (revision 97612142f4697066beb66064e83ff31fef1712b9) +++ lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsCoreToolService.java (.../ILamsCoreToolService.java) (revision 7063c259a54239643a9ef50c3bb36ca9f6e7fbb5) @@ -131,10 +131,11 @@ * * @param toolActivity the tool activity defined in the design. * @param setDefineLater whether or not to set the define later flag. + * @param customCSV custom comma-separated values used for tool adapters * @throws DataMissingException, ToolException * @see org.lamsfoundation.lams.tool.service.ILamsCoreToolService#notifyToolToCopyContent(org.lamsfoundation.lams.learningdesign.ToolActivity) */ - public Long notifyToolToCopyContent(ToolActivity toolActivity, boolean setDefineLater) + public Long notifyToolToCopyContent(ToolActivity toolActivity, boolean setDefineLater, String customCSV) throws DataMissingException, ToolException; /** @@ -160,10 +161,11 @@ * stored in the tool. * * @param toolContentId the content to be copied. + * @param customCSV the customCSV required if this is a tooladapter tool, otherwise null * @throws DataMissingException, ToolException * @see org.lamsfoundation.lams.tool.service.ILamsCoreToolService#notifyToolToCopyContent(org.lamsfoundation.lams.learningdesign.ToolActivity) */ - public Long notifyToolToCopyContent(Long toolContentId) + public Long notifyToolToCopyContent(Long toolContentId, String customCSV) throws DataMissingException, ToolException; /** * Ask a tool to delete a tool content. If any related tool session data exists then it should Index: lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java =================================================================== diff -u -r3bfbf85ce0639b4cd2957e34a978a22da5e7d66f -r7063c259a54239643a9ef50c3bb36ca9f6e7fbb5 --- lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java (.../LamsCoreToolService.java) (revision 3bfbf85ce0639b4cd2957e34a978a22da5e7d66f) +++ lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java (.../LamsCoreToolService.java) (revision 7063c259a54239643a9ef50c3bb36ca9f6e7fbb5) @@ -38,6 +38,7 @@ import org.lamsfoundation.lams.tool.ToolContent; import org.lamsfoundation.lams.tool.ToolContentIDGenerator; import org.lamsfoundation.lams.tool.ToolContentManager; +import org.lamsfoundation.lams.tool.ToolAdapterContentManager; import org.lamsfoundation.lams.tool.ToolOutput; import org.lamsfoundation.lams.tool.ToolOutputDefinition; import org.lamsfoundation.lams.tool.ToolSession; @@ -215,20 +216,30 @@ * @throws DataMissingException, ToolException * @see org.lamsfoundation.lams.tool.service.ILamsCoreToolService#notifyToolToCopyContent(org.lamsfoundation.lams.learningdesign.ToolActivity) */ - public Long notifyToolToCopyContent(ToolActivity toolActivity, boolean setDefineLater) + public Long notifyToolToCopyContent(ToolActivity toolActivity, boolean setDefineLater, String customCSV) throws DataMissingException, ToolException { - return notifyToToolAboutContent(toolActivity, setDefineLater, true); + return notifyToToolAboutContent(toolActivity, setDefineLater, true, customCSV); } - private Long notifyToToolAboutContent(ToolActivity toolActivity, boolean setDefineLater, boolean copyToolContent) { + private Long notifyToToolAboutContent(ToolActivity toolActivity, boolean setDefineLater, boolean copyToolContent, String customCSV) { Long toolcontentID = toolActivity.getToolContentId(); try { ToolContentManager contentManager = (ToolContentManager) findToolService(toolActivity.getTool()); if ( copyToolContent ) { toolcontentID = contentIDGenerator.getNextToolContentIDFor(toolActivity.getTool()); - contentManager.copyToolContent(toolActivity.getToolContentId(), toolcontentID); + + // If it is a tool adapter tool, call the special copyToolContent which takes the customCSV param + if (contentManager instanceof ToolAdapterContentManager) + { + ToolAdapterContentManager adapterContentManager = (ToolAdapterContentManager)contentManager; + adapterContentManager.copyToolContent(toolActivity.getToolContentId(), toolcontentID, customCSV); + } + else + { + contentManager.copyToolContent(toolActivity.getToolContentId(), toolcontentID); + } } contentManager.setAsDefineLater(toolcontentID, @@ -259,7 +270,7 @@ public Long notifyToolOfStatusFlags(ToolActivity toolActivity) throws DataMissingException, ToolException { - return notifyToToolAboutContent(toolActivity, true, false); + return notifyToToolAboutContent(toolActivity, true, false, null); } /** @@ -269,10 +280,11 @@ * tool) may already exist. * * @param toolContentId the content to be copied. + * @param customCSV the customCSV required if this is a tooladapter tool, otherwise null * @throws DataMissingException, ToolException * @see org.lamsfoundation.lams.tool.service.ILamsCoreToolService#notifyToolToCopyContent(org.lamsfoundation.lams.learningdesign.ToolActivity) */ - public Long notifyToolToCopyContent(Long toolContentId) + public Long notifyToolToCopyContent(Long toolContentId, String customCSV) throws DataMissingException, ToolException { ToolContent toolContent = (ToolContent) toolContentDAO.find(ToolContent.class, toolContentId); @@ -292,7 +304,13 @@ Long newToolcontentID = contentIDGenerator.getNextToolContentIDFor(tool); try { ToolContentManager contentManager = (ToolContentManager) findToolService(tool); - contentManager.copyToolContent(toolContentId,newToolcontentID); + if (contentManager instanceof ToolAdapterContentManager){ + ToolAdapterContentManager toolAdapterContentManager = (ToolAdapterContentManager)contentManager; + toolAdapterContentManager.copyToolContent(toolContentId, newToolcontentID, customCSV); + } + else{ + contentManager.copyToolContent(toolContentId,newToolcontentID); + } } catch ( NoSuchBeanDefinitionException e ) { String message = "A tool which is defined in the database appears to missing from the classpath. Unable to copy the tool content. ToolContentId "+toolContentId; log.error(message,e);