Index: lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsCoreToolService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsCoreToolService.java,v diff -u -r1.20 -r1.21 --- lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsCoreToolService.java 5 Sep 2007 08:08:57 -0000 1.20 +++ lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsCoreToolService.java 15 Aug 2008 04:47:30 -0000 1.21 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java,v diff -u -r1.34 -r1.35 --- lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java 14 Jan 2008 23:33:38 -0000 1.34 +++ lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java 15 Aug 2008 04:47:30 -0000 1.35 @@ -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);