Name

sn_smd.SMSvcModel

Description

No description available

Script

var SMSvcModel = Class.create();

SMSvcModel.prototype = Object.extendsObject(SMCommonModel, {
  
  /**
  * @param {IServiceContainer} svcContainer object
  */
  initialize: function(svcContainer) {
  	if(gs.nil(svcContainer)) {
  		throw '[SMSvcModel.initialize] Cannot instantiate null object';
  	}
  	this.setDAO(svcContainer);
  	this.setSecurityContext(SMSecurityManager.SERVICE_MODEL_CTX);
  },
  
  deleteModel: function() {
  	try {
  		if(!this.canDelete()) {
  			throw 'Cannot delete a service model: Permission denied';
  		}
  		this.getDAO().deleteRecord();
  	} catch(error) {
  		var displayMessage  = gs.getMessage('Failed to delete a service model');
  		var internalMessage = 'Error in SMSvcModel.deleteModel';
  		throw SMErrorHelper.createJavaAPIError(displayMessage, internalMessage, error);
  	}
  },

  createLayer: function(kind, identifier, name, description, parentLayerId) {
  	var svcEnv = null;
  	var parent = null; //service model layer object
  
  	if(gs.nil(parentLayerId)) {
  		if(!this.canCreate()) {
  			throw 'Cannot create a service layer: Permission denied';
  		}
  		svcEnv = this.getDAO().createEnvironment('se_' + name);
  	} else {
  		var parentLayer = SMAPI.loadServiceLayer(parentLayerId);
  		if(!parentLayer.canCreate()) {
  			throw 'Cannot create a service layer: Permission denied';
  		}
  		svcEnv = parentLayer.getEnvironment();
  		parent = parentLayer.getDAO();
  	}
  	var layer = svcEnv.createLayer(kind, identifier, parent);
  	layer.setName(name);
  	layer.setDescription(description || "");
  	
  	return new SMSvcLayer(layer);
  },
  
  //creates new service layer with a new service environment 
  createLayerWithDependency: function(kind, identifier, name, description, parentLayerId) {
  	var parent = null;
  	
  	if(!gs.nil(parentLayerId)) {
  		var parentLayer = SMAPI.loadServiceLayer(parentLayerId);
  		if(!parentLayer.canCreate()) {
  			throw 'Cannot create a service layer: Permission denied';
  		}
  		parent = parentLayer.getDAO();
  	}
  	else if(!this.canCreate()) {
  		throw 'Cannot create a service layer: Permission denied';
  	}
  
  	var svcEnv = this.getDAO().createEnvironment('se_' + name);
  	var layer = svcEnv.createLayer(kind, identifier, parent);
  	layer.setName(name);
  	layer.setDescription(description || "");
  	return new SMSvcLayer(layer);
  },
  type: 'SMSvcModel'
});

Sys ID

d13bbfb09f822200e78d317f842e704b

Offical Documentation

Official Docs: