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

Offical Documentation

Official Docs: