From 465e9b33830d4151e07df81d95ad77c6ec639010 Mon Sep 17 00:00:00 2001 From: Jonathan Putney Date: Sun, 10 Nov 2019 21:58:42 -0500 Subject: [PATCH] Fixing complexity issue in AICC API --- src/AICC.js | 83 +++++++++++++++++++++++------------------------ src/Scorm12API.js | 9 ++--- 2 files changed, 45 insertions(+), 47 deletions(-) diff --git a/src/AICC.js b/src/AICC.js index 8b78602..98ecfa5 100644 --- a/src/AICC.js +++ b/src/AICC.js @@ -1,52 +1,49 @@ // @flow import Scorm12API from './Scorm12API'; -import { - CMIInteractionsCorrectResponsesObject, - CMIInteractionsObject, - CMIInteractionsObjectivesObject, - CMIObjectivesObject -} from "./cmi/scorm12_cmi"; -import {CMIEvaluationCommentsObject, CMITriesObject, NAV} from "./cmi/aicc_cmi"; +import {CMIEvaluationCommentsObject, CMITriesObject, NAV} from './cmi/aicc_cmi'; +/** + * The AICC API class + */ class AICC extends Scorm12API { - constructor() { - super(); + /** + * Constructor to create AICC API object + */ + constructor() { + super(); - this.nav = new NAV(this); + this.nav = new NAV(this); + } + + /** + * Gets or builds a new child element to add to the array. + * + * @param {string} CMIElement + * @param {any} value + * @return {object} + */ + getChildElement(CMIElement, value) { + let newChild = super.getChildElement(CMIElement); + + if (!newChild) { + if (this.stringContains(CMIElement, 'cmi.evaluation.comments')) { + newChild = new CMIEvaluationCommentsObject(this); + } else if (this.stringContains(CMIElement, 'cmi.student_data.tries')) { + newChild = new CMITriesObject(this); + } } - /** - * Gets or builds a new child element to add to the array. - * - * @param CMIElement - * @param value - */ - getChildElement(CMIElement, value) { - let newChild; + return newChild; + } - if (this.stringContains(CMIElement, "cmi.objectives")) { - newChild = new CMIObjectivesObject(this); - } else if (this.stringContains(CMIElement, ".correct_responses")) { - newChild = new CMIInteractionsCorrectResponsesObject(this); - } else if (this.stringContains(CMIElement, ".objectives")) { - newChild = new CMIInteractionsObjectivesObject(this); - } else if (this.stringContains(CMIElement, "cmi.interactions")) { - newChild = new CMIInteractionsObject(this); - } else if (this.stringContains(CMIElement, "cmi.evaluation.comments")) { - newChild = new CMIEvaluationCommentsObject(this); - } else if (this.stringContains(CMIElement, "cmi.student_data.tries")) { - newChild = new CMITriesObject(this); - } - - return newChild; - } - - /** - * Replace the whole API with another - */ - replaceWithAnotherScormAPI(newAPI) { - // Data Model - this.cmi = newAPI.cmi; - this.nav = newAPI.nav; - } + /** + * Replace the whole API with another + * + * @param {AICC} newAPI + */ + replaceWithAnotherScormAPI(newAPI) { + // Data Model + this.cmi = newAPI.cmi; + this.nav = newAPI.nav; + } } diff --git a/src/Scorm12API.js b/src/Scorm12API.js index 3a2878c..8a760c3 100644 --- a/src/Scorm12API.js +++ b/src/Scorm12API.js @@ -112,10 +112,11 @@ export default class Scorm12API extends BaseAPI { } /** - * Gets or builds a new child element to add to the array. - * - * @param CMIElement - */ + * Gets or builds a new child element to add to the array. + * + * @param CMIElement + * @param value + */ getChildElement(CMIElement, value) { let newChild;