38 lines
1002 B
JavaScript
38 lines
1002 B
JavaScript
|
define(['lodash'], function(_){
|
||
|
|
||
|
"use strict";
|
||
|
|
||
|
var _pciModels = {};
|
||
|
|
||
|
/**
|
||
|
* Global object accessible by all PCIs
|
||
|
*
|
||
|
* @type Object
|
||
|
*/
|
||
|
var pciCreatorContext = {
|
||
|
/**
|
||
|
* register a custom interaction (its runtime model) in global registery
|
||
|
* register a renderer
|
||
|
*
|
||
|
* @param {Object} pciModel
|
||
|
* @returns {undefined}
|
||
|
*/
|
||
|
register : function(pciModel){
|
||
|
//@todo check pciModel validity
|
||
|
_pciModels[pciModel.getTypeIdentifier()] = pciModel;
|
||
|
},
|
||
|
/**
|
||
|
* Get a cloned object representing the PCI model
|
||
|
*
|
||
|
* @param {string} pciTypeIdentifier
|
||
|
* @returns {Object} clonedPciModel
|
||
|
*/
|
||
|
createPciInstance : function(pciTypeIdentifier){
|
||
|
if(_pciModels[pciTypeIdentifier]){
|
||
|
return _.cloneDeep(_pciModels[pciTypeIdentifier]);
|
||
|
}
|
||
|
}
|
||
|
};
|
||
|
|
||
|
return pciCreatorContext;
|
||
|
});
|