Name
sn_smd.SMActionFactory
Description
Creates a new action for the passed action name.
Script
var SMActionFactory = Class.create();
SMActionFactory.getNamespaceObject = function(nmsp){
if(nmsp === "sn_sra"){
return sn_sra || null;
}
if(nmsp === "sn_smd"){
return sn_smd || null;
}
if(nmsp === "sn_cmp"){
return sn_cmp || null;
}
if(nmsp === "global"){
return global || null;
}
return null;
};
SMActionFactory.create = function(namespace, actionName) {
var result = null;
try {
if(!isCurrentScope(namespace)) {
var namespaceObj = SMActionFactory.getNamespaceObject(namespace);
/* eslint-disable no-undef */
result = namespaceObj.ActionFactory.create(actionName);
/* eslint-enable no-undef */
//action cannot present without actionGr, but not vice versa
if(!gs.nil(result) && !gs.nil(result.actionGr)) {
if(!gs.nil(result.action)) {
//Overriddent action
return result;
}
}
}
//Look for base action and/or pre-post actions record
result = result || {};
var baseActionGr = SMUtils.queryMappingTable('sm_action_mapping', actionName, true);
baseActionGr.next();
if(gs.nil(result.actionGr)) {
result.actionGr = baseActionGr;
}
var actionScriptName = baseActionGr.getValue('script_name');
/* eslint-disable no-undef */
result.action = new sn_smd[actionScriptName]();
/* eslint-enable no-undef */
if(gs.nil(result.actionGr))
return null;
return result;
} catch(err) {
return null;
}
function isCurrentScope(namespace) {
return namespace == gs.getCurrentScopeName();
}
};
Sys ID
0ce3b49b9353310054005d3f867ffbcb