diff --git a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/SCORMParser.java b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/SCORMParser.java new file mode 100644 index 00000000..ce4687d2 --- /dev/null +++ b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/SCORMParser.java @@ -0,0 +1,44 @@ +package com.xboe.module.scorm; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.xboe.module.scorm.cam.load.SCORMPackageManager; +import com.xboe.module.scorm.cam.model.ContentPackage; +import com.xboe.module.scorm.cam.model.Manifest; +import com.xboe.module.scorm.cam.model.Resource; +import com.xboe.module.scorm.data.ScoItem; + +/** + * 解析程序,转化为课程存储的json + */ +public class SCORMParser { + + public String parserToJson(String path) throws Exception { + System.out.println("test"); + Map jsonMap=new HashMap(); + ContentPackage cp=SCORMPackageManager.getInstance().loadSCORMContentPackageFromZipFile("1", "E:/Projects/BOEU/scorm/file/ContentPackagingOneFilePerSCO_SCORM12.zip"); + Manifest manifest= cp.getManifest(); + System.out.println(cp.getManifest().getIdentifier()); + System.out.println(cp.getContent()); + + List items=new ArrayList(); + + System.out.println("title="+cp.getManifest().getOrganizations().getOrganizationList().get(0).getTitle()); + for(Resource res : cp.getManifest().getResources().getResourceList()) { + System.out.println(res.getHref()); + } + //scorm的版本 + jsonMap.put("schema",manifest.getMetadata().getSchema()); + jsonMap.put("version",manifest.getMetadata().getSchemaVersion()); + jsonMap.put("items", items);//sco共有多少个 + jsonMap.put("index", "");//打开播放时进入的第一个sco + + ObjectMapper om=new ObjectMapper(); + String json=om.writeValueAsString(jsonMap); + return json; + } +} diff --git a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/cam/load/SCORMPackageManager.java b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/cam/load/SCORMPackageManager.java index 3db59a0f..610602a9 100644 --- a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/cam/load/SCORMPackageManager.java +++ b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/cam/load/SCORMPackageManager.java @@ -74,7 +74,7 @@ public class SCORMPackageManager { } } - private ContentPackage loadSCORMContentPackageFromZipFile(String lmsContentPackageID, String zipFilePath) { + public ContentPackage loadSCORMContentPackageFromZipFile(String lmsContentPackageID, String zipFilePath) { if (!ZipUtils.isEndWithZip(zipFilePath)) { return null; } @@ -117,35 +117,35 @@ public class SCORMPackageManager { return contentPackageMap.size(); } - public static void main(String[] args) { -// System.out.println(SCORMPackageManager.getInstance() -// .loadSCORMContentPackageFromZipFile("1", "learningserver-scorm/scorm-test-pkg.zip") -// .getContent()); - System.out.println("test"); - ContentPackage cp=SCORMPackageManager.getInstance().loadSCORMContentPackageFromZipFile("1", "E:/Projects/BOEU/scorm/file/ContentPackagingOneFilePerSCO_SCORM12.zip"); - System.out.println(cp.getManifest().getIdentifier()); - System.out.println(cp.getContent()); - System.out.println("title="+cp.getManifest().getOrganizations().getOrganizationList().get(0).getTitle()); - for(Resource res : cp.getManifest().getResources().getResourceList()) { - System.out.println(res.getHref()); - } - -// System.out.println("ADL_Maritime_Navigation"); -// cp=SCORMPackageManager.getInstance().loadSCORMContentPackageFromZipFile("1", "E:/Projects/BOEU/scorm/file/ADL_Maritime_Navigation.zip"); +// public static void main(String[] args) { +//// System.out.println(SCORMPackageManager.getInstance() +//// .loadSCORMContentPackageFromZipFile("1", "learningserver-scorm/scorm-test-pkg.zip") +//// .getContent()); +// System.out.println("test"); +// ContentPackage cp=SCORMPackageManager.getInstance().loadSCORMContentPackageFromZipFile("1", "E:/Projects/BOEU/scorm/file/ContentPackagingOneFilePerSCO_SCORM12.zip"); // System.out.println(cp.getManifest().getIdentifier()); // System.out.println(cp.getContent()); +// System.out.println("title="+cp.getManifest().getOrganizations().getOrganizationList().get(0).getTitle()); // for(Resource res : cp.getManifest().getResources().getResourceList()) { -// System.out.print(res.getHref()); +// System.out.println(res.getHref()); // } // -// System.out.println("7a462dbee222ba62810191d2f512576e"); -// ContentPackage cp3=SCORMPackageManager.getInstance().loadSCORMContentPackageFromZipFile("1", "E:/Projects/BOEU/scorm/file/7a462dbee222ba62810191d2f512576e.zip"); -// System.out.println(cp3.getManifest().getIdentifier()); -// System.out.println(cp3.getContent()); -// for(Resource res : cp3.getManifest().getResources().getResourceList()) { -// System.out.print(res.getHref()); -// } -// - } +//// System.out.println("ADL_Maritime_Navigation"); +//// cp=SCORMPackageManager.getInstance().loadSCORMContentPackageFromZipFile("1", "E:/Projects/BOEU/scorm/file/ADL_Maritime_Navigation.zip"); +//// System.out.println(cp.getManifest().getIdentifier()); +//// System.out.println(cp.getContent()); +//// for(Resource res : cp.getManifest().getResources().getResourceList()) { +//// System.out.print(res.getHref()); +//// } +//// +//// System.out.println("7a462dbee222ba62810191d2f512576e"); +//// ContentPackage cp3=SCORMPackageManager.getInstance().loadSCORMContentPackageFromZipFile("1", "E:/Projects/BOEU/scorm/file/7a462dbee222ba62810191d2f512576e.zip"); +//// System.out.println(cp3.getManifest().getIdentifier()); +//// System.out.println(cp3.getContent()); +//// for(Resource res : cp3.getManifest().getResources().getResourceList()) { +//// System.out.print(res.getHref()); +//// } +//// +// } } diff --git a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/data/ScoItem.java b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/data/ScoItem.java new file mode 100644 index 00000000..7436962c --- /dev/null +++ b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/data/ScoItem.java @@ -0,0 +1,73 @@ +package com.xboe.module.scorm.data; + +import java.util.List; + +/** + * sco的信息 + * + */ +public class ScoItem { + + private String id; + + private String title; + + private String scoId; + + private String scoType; + + private String scoUrl; + + private List items; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getScoId() { + return scoId; + } + + public void setScoId(String scoId) { + this.scoId = scoId; + } + + public String getScoType() { + return scoType; + } + + public void setScoType(String scoType) { + this.scoType = scoType; + } + + public String getScoUrl() { + return scoUrl; + } + + public void setScoUrl(String scoUrl) { + this.scoUrl = scoUrl; + } + + public List getItems() { + return items; + } + + public void setItems(List items) { + this.items = items; + } + + + +} diff --git a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/rte/model/result/CollectionScormResult.java b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/rte/model/result/CollectionScormResult.java index 07eafeaa..1fa0b462 100644 --- a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/rte/model/result/CollectionScormResult.java +++ b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/rte/model/result/CollectionScormResult.java @@ -1,28 +1,25 @@ package com.xboe.module.scorm.rte.model.result; -import com.sun.istack.internal.NotNull; - import com.xboe.module.scorm.rte.model.error.ScormError; public class CollectionScormResult extends ScormResult { private Instance instance; - public CollectionScormResult(@NotNull String returnValue, @NotNull ScormError error) { + public CollectionScormResult(String returnValue, ScormError error) { this(returnValue, error, (Instance) null); } - public CollectionScormResult(@NotNull String returnValue, @NotNull ScormError error, @NotNull String diagnostic) { + public CollectionScormResult(String returnValue,ScormError error,String diagnostic) { this(returnValue, error, diagnostic, (Instance) null); } - public CollectionScormResult(@NotNull String returnValue, @NotNull ScormError error, Instance instance) { + public CollectionScormResult(String returnValue,ScormError error, Instance instance) { super(returnValue, error); this.instance = instance; } - public CollectionScormResult(@NotNull String returnValue, @NotNull ScormError error, - @NotNull String diagnostic, Instance instance) { + public CollectionScormResult(String returnValue, ScormError error,String diagnostic, Instance instance) { super(returnValue, error, diagnostic); this.instance = instance; } diff --git a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/rte/model/result/ScormResult.java b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/rte/model/result/ScormResult.java index 4b61f856..a5ab3214 100644 --- a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/rte/model/result/ScormResult.java +++ b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/rte/model/result/ScormResult.java @@ -2,8 +2,6 @@ package com.xboe.module.scorm.rte.model.result; import org.apache.commons.lang3.builder.ToStringBuilder; -import com.sun.istack.internal.NotNull; - import com.xboe.module.scorm.rte.model.error.ScormError; public class ScormResult { @@ -14,11 +12,11 @@ public class ScormResult { private String diagnostic; - public ScormResult(@NotNull String returnValue, @NotNull ScormError error) { + public ScormResult(String returnValue, ScormError error) { this(returnValue, error, error.getMsg()); } - public ScormResult(@NotNull String returnValue, @NotNull ScormError error, @NotNull String diagnostic) { + public ScormResult(String returnValue, ScormError error, String diagnostic) { this.returnValue = returnValue; this.error = error; this.diagnostic = diagnostic; @@ -28,7 +26,7 @@ public class ScormResult { return returnValue; } - public ScormResult setReturnValue(@NotNull String returnValue) { + public ScormResult setReturnValue(String returnValue) { this.returnValue = returnValue; return this; } @@ -41,7 +39,7 @@ public class ScormResult { return diagnostic; } - public ScormResult setDiagnostic(@NotNull String diagnostic) { + public ScormResult setDiagnostic(String diagnostic) { this.diagnostic = diagnostic; return this; } diff --git a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/behavior/NavigationBehavior.java b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/behavior/NavigationBehavior.java index 45420ccc..e8ec7007 100644 --- a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/behavior/NavigationBehavior.java +++ b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/behavior/NavigationBehavior.java @@ -3,8 +3,6 @@ package com.xboe.module.scorm.sn.api.behavior; import java.util.LinkedList; import java.util.List; -import com.sun.istack.internal.NotNull; - import com.xboe.module.scorm.sn.api.behavior.result.NavigationBehaviorResult; import com.xboe.module.scorm.sn.api.behavior.result.SequencingException; import com.xboe.module.scorm.sn.api.request.NavigationRequest; @@ -31,7 +29,7 @@ public class NavigationBehavior { * Available Children AM.1.1 * Suspended Activity AM.1.2 */ - public static NavigationBehaviorResult processNavigationRequest(@NotNull NavigationRequest navigationRequest) { + public static NavigationBehaviorResult processNavigationRequest(NavigationRequest navigationRequest) { NavigationRequest.Type type = navigationRequest.getRequestType(); ActivityTree activityTree = navigationRequest.getTargetActivityTree(); Activity currentActivity = activityTree.getGlobalStateInformation().getCurrentActivity(); diff --git a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/behavior/OverallSequencingBehavior.java b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/behavior/OverallSequencingBehavior.java index 5dd1a1e8..9b91664b 100644 --- a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/behavior/OverallSequencingBehavior.java +++ b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/behavior/OverallSequencingBehavior.java @@ -1,7 +1,5 @@ package com.xboe.module.scorm.sn.api.behavior; -import com.sun.istack.internal.NotNull; - import com.xboe.module.scorm.sn.api.behavior.result.DeliveryBehaviorResult; import com.xboe.module.scorm.sn.api.behavior.result.NavigationBehaviorResult; import com.xboe.module.scorm.sn.api.behavior.result.OverallSequencingResult; @@ -30,7 +28,7 @@ public class OverallSequencingBehavior { * @see SequencingBehavior#processSequencingRequest(SequencingRequest) SB.2.12 * @see TerminationBehavior#processTerminationRequest(TerminationRequest) TB.2.3 */ - public static OverallSequencingResult overallSequencing(@NotNull NavigationRequest navigationRequest) { + public static OverallSequencingResult overallSequencing(NavigationRequest navigationRequest) { // 1.1 NavigationBehaviorResult navigationBehaviorResult = NavigationBehavior.processNavigationRequest(navigationRequest); // 1.2 diff --git a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/event/EventTranslator.java b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/event/EventTranslator.java index c1c180bd..75fdcfc7 100644 --- a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/event/EventTranslator.java +++ b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/event/EventTranslator.java @@ -1,7 +1,5 @@ package com.xboe.module.scorm.sn.api.event; -import com.sun.istack.internal.NotNull; - import com.xboe.module.scorm.sn.api.request.NavigationRequest; import com.xboe.module.scorm.sn.api.request.NavigationRequest.Type; import com.xboe.module.scorm.sn.model.tree.Activity; @@ -9,7 +7,7 @@ import com.xboe.module.scorm.sn.model.tree.ActivityTree; public class EventTranslator { - public static NavigationRequest translateEventToRequestType(@NotNull NavigationEvent event, + public static NavigationRequest translateEventToRequestType(NavigationEvent event, ActivityTree activityTree, Activity activity) { return new NavigationRequest(getRequestType(event), activityTree, activity); } diff --git a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/request/NavigationRequest.java b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/request/NavigationRequest.java index 3f50eae8..7952a171 100644 --- a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/request/NavigationRequest.java +++ b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/request/NavigationRequest.java @@ -1,7 +1,5 @@ package com.xboe.module.scorm.sn.api.request; -import com.sun.istack.internal.NotNull; - import com.xboe.module.scorm.sn.model.tree.Activity; import com.xboe.module.scorm.sn.model.tree.ActivityTree; @@ -9,7 +7,7 @@ public class NavigationRequest extends Request { private Type requestType; - public NavigationRequest(@NotNull Type requestType, ActivityTree targetActivityTree, Activity targetActivity) { + public NavigationRequest(Type requestType, ActivityTree targetActivityTree, Activity targetActivity) { super(targetActivityTree, targetActivity); this.requestType = requestType; } diff --git a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/request/SequencingRequest.java b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/request/SequencingRequest.java index 79b75bea..a6c8444b 100644 --- a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/request/SequencingRequest.java +++ b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/request/SequencingRequest.java @@ -1,7 +1,5 @@ package com.xboe.module.scorm.sn.api.request; -import com.sun.istack.internal.NotNull; - import com.xboe.module.scorm.sn.api.behavior.common.TraversalDirection; import com.xboe.module.scorm.sn.model.tree.Activity; import com.xboe.module.scorm.sn.model.tree.ActivityTree; @@ -16,7 +14,7 @@ public class SequencingRequest extends Request { private boolean considerChildren; - public SequencingRequest(@NotNull Type requestType, ActivityTree targetActivityTree, Activity targetActivity) { + public SequencingRequest(Type requestType, ActivityTree targetActivityTree, Activity targetActivity) { super(targetActivityTree, targetActivity); this.requestType = requestType; } diff --git a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/request/TerminationRequest.java b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/request/TerminationRequest.java index e2310f2b..a864d0f5 100644 --- a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/request/TerminationRequest.java +++ b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/api/request/TerminationRequest.java @@ -1,7 +1,5 @@ package com.xboe.module.scorm.sn.api.request; -import com.sun.istack.internal.NotNull; - import com.xboe.module.scorm.sn.model.tree.Activity; import com.xboe.module.scorm.sn.model.tree.ActivityTree; @@ -9,7 +7,7 @@ public class TerminationRequest extends Request { private Type requestType; - public TerminationRequest(@NotNull Type requestType, ActivityTree targetActivityTree, Activity targetActivity) { + public TerminationRequest(Type requestType, ActivityTree targetActivityTree, Activity targetActivity) { super(targetActivityTree, targetActivity); this.requestType = requestType; } diff --git a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/model/definition/SequencingRuleDescription.java b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/model/definition/SequencingRuleDescription.java index 2ae1bf94..895d0133 100644 --- a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/model/definition/SequencingRuleDescription.java +++ b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/model/definition/SequencingRuleDescription.java @@ -3,7 +3,6 @@ package com.xboe.module.scorm.sn.model.definition; import java.util.ArrayList; import java.util.List; -import com.sun.istack.internal.NotNull; import com.xboe.module.scorm.sn.model.datatype.Vocabulary; @@ -18,7 +17,7 @@ public class SequencingRuleDescription implements DefinitionElementSet { private final List ruleConditions; private final Vocabulary ruleAction; - public SequencingRuleDescription(@NotNull ConditionType conditionType) { + public SequencingRuleDescription(ConditionType conditionType) { this.conditionType = conditionType; conditionCombination = new Vocabulary("All", "All", "Any"); ruleConditions = new ArrayList<>(); diff --git a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/model/tree/ActivityTree.java b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/model/tree/ActivityTree.java index 770be26f..f2d11818 100644 --- a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/model/tree/ActivityTree.java +++ b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/sn/model/tree/ActivityTree.java @@ -9,8 +9,6 @@ import java.util.Map; import java.util.Objects; import java.util.Stack; -import com.sun.istack.internal.NotNull; - import com.xboe.module.scorm.common.ID; import com.xboe.module.scorm.sn.model.global.GlobalObjectiveDescription; import com.xboe.module.scorm.sn.model.tracking.GlobalStateInformation; @@ -76,14 +74,14 @@ public class ActivityTree { return null; } - public boolean existActivity(@NotNull Activity activity) { + public boolean existActivity(Activity activity) { if (root == null) { return false; } return existActivity(root, activity); } - public boolean existActivity(@NotNull Activity activity, @NotNull Activity target) { + public boolean existActivity(Activity activity, Activity target) { if (activity.equals(target)) { return true; } diff --git a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/web/ScormPlayer.java b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/web/ScormPlayer.java deleted file mode 100644 index 50e08f31..00000000 --- a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/web/ScormPlayer.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.xboe.module.scorm.web; - -/** - * 全文检索查询实现 - */ -public class ScormPlayer { - -}