Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java,v diff -u -r1.73 -r1.74 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java 17 Sep 2007 01:23:34 -0000 1.73 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java 18 Oct 2007 06:22:42 -0000 1.74 @@ -24,6 +24,7 @@ /* $Id$ */ package org.lamsfoundation.lams.learningdesign.service; +import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -184,8 +185,8 @@ private static final String IMS_PREFIX_RESOURCE_IDENTIFIER = "R-"; private static final String IMS_PREFIX_ACTIVITY_REF = "A-"; private static final String IMS_PREFIX_COMPLEX_REF = "S-"; - - //this is not IMS standard tag, temporarily use to gather all tools node list + + //this is not IMS standard tag, temporarily use to gather all tools node list private static final String IMS_TAG_TRANSITIONS = "transitions"; // this is not IMS standard tag, temp use to ref grouping/gate activities @@ -241,6 +242,11 @@ private ILearningDesignDAO learningDesignDAO; private ILearningLibraryDAO learningLibraryDAO; private IToolImportSupportDAO toolImportSupportDAO; + + + private static final String KEY_MSG_IMPORT_FILE_FORMAT = "msg.import.file.format"; + + /** * Class of tool attachment file handler class and relative fields information container. @@ -875,13 +881,87 @@ this.filterClass = filterClass; } + /** Import the learning design from the given path. Set the importer as the creator. If the workspaceFolderUid is + * null then saves the design in the user's own workspace folder. + * + * @param designFile + * @param importer + * @param workspaceFolderUid + * @return An object array where: + * + * + * @throws ImportToolContentException + */ + public Object[] importLearningDesign(File designFile, User importer, Integer workspaceFolderUid, + List toolsErrorMsgs) throws ImportToolContentException { + + Object[] ldResults = new Object[3]; + Long ldId = null; + List ldErrorMsgs = new ArrayList(); + String filename = designFile.getName(); + String extension = filename != null && filename.length() >= 4 ? filename.substring(filename.length()-4) : ""; + + try { + + if ( extension.equalsIgnoreCase(".las") ) { + // process 1.0.x file. + String wddxPacket = getPacket(new FileInputStream(designFile)); + if ( wddxPacket == null || ! ( wddxPacket.startsWith(" toolsErrorMsgs) throws ImportToolContentException { WorkspaceFolder folder = getWorkspaceFolderForDesign(importer, workspaceFolderUid); LD102Importer oldImporter = getLD102Importer(); @@ -894,7 +974,7 @@ * @throws ExportToolContentException * @see org.lamsfoundation.lams.authoring.service.IExportToolContentService.importLearningDesign(String) */ - public Long importLearningDesign(String learningDesignPath, User importer, Integer workspaceFolderUid + public Long importLearningDesignV2(String learningDesignPath, User importer, Integer workspaceFolderUid , List toolsErrorMsgs) throws ImportToolContentException { try { @@ -1015,7 +1095,15 @@ } return folder; } + + private void badFileType(List ldErrorMsgs, String filename, String errDescription) { + log.error("Uploaded file not an expected type. Filename was "+filename+" "+errDescription); + MessageService msgService = getMessageService(); + String msg = msgService.getMessage(KEY_MSG_IMPORT_FILE_FORMAT); + ldErrorMsgs.add(msg != null ? msg : "Uploaded file not an expected type."); + } + /** * Import tool content */ Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/IExportToolContentService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/IExportToolContentService.java,v diff -u -r1.16 -r1.17 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/IExportToolContentService.java 27 Oct 2006 02:35:29 -0000 1.16 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/IExportToolContentService.java 18 Oct 2007 06:22:42 -0000 1.17 @@ -108,6 +108,24 @@ String initialItemFieldName); void registerImportVersionFilterClass(Class filterClass); + + /** Import the learning design from the given path. Set the importer as the creator. If the workspaceFolderUid is + * null then saves the design in the user's own workspace folder. + * + * @param designFile + * @param importer + * @param workspaceFolderUid + * @return An object array where: + *
    + *
  • Object[0] = ldID (Long)
  • + *
  • Object[1] = ldErrors when importing (List)
  • + *
  • Object[2] = toolErrors when importing (List)
  • + *
+ * + * @throws ImportToolContentException + */ + Object[] importLearningDesign(File designFile, User importer, Integer workspaceFolderUid, + List toolsErrorMsgs) throws ImportToolContentException ; /** Import the learning design from the given path. Set the importer as the creator. If the workspaceFolderUid is * null then saves the design in the user's own workspace folder. @@ -118,7 +136,7 @@ * @return learningDesignID * @throws ImportToolContentException */ - Long importLearningDesign(String learningDesignPath,User importer, Integer workspaceFolderUid, List toolsErrorMsgs) throws ImportToolContentException; +// Long importLearningDesignv2(String learningDesignPath,User importer, Integer workspaceFolderUid, List toolsErrorMsgs) throws ImportToolContentException; /** * Import the tool content. This is called by tools to do the actual content import, once the tool @@ -133,7 +151,7 @@ * @throws ExportToolContentException * @see org.lamsfoundation.lams.authoring.service.IExportToolContentService.importLearningDesign102(String, User, WorkspaceFolder) */ - public Long importLearningDesign102(String ldWddxPacket, User importer, Integer workspaceFolderUid - , List toolsErrorMsgs) throws ImportToolContentException; +// public Long importLearningDesignV102(String ldWddxPacket, User importer, Integer workspaceFolderUid +// , List toolsErrorMsgs) throws ImportToolContentException; }