Name

sn_smd.SMSvcLayer

Description

No description available

Script

var SMSvcLayer = Class.create();
SMSvcLayer.prototype = Object.extendsObject(SMCommonModel, {
  
  /**
  * @param {IServiceLayer} layer - a layer object
  * @param {?string} securityContext - predefined security context definition id
  */
  initialize: function(layer, securityContext) {
  	if(gs.nil(layer)) {
  		throw '[SMSvcLayer.initialize] Cannot instantiate null object';
  	}
  	this.setDAO(layer);
  	var secCtxString = securityContext || new SMSecurityManager().getLayerContextId(layer);
  	this.setSecurityContext(secCtxString);
  },
  
  getKind: function() {
  	return this.getDAO().getKind();
  },
  
  getKindIdentifier: function() {
  	return this.getDAO().getKindIdentifier();
  },
  
  getEnvironment: function() {
  	return this.getDAO().getEnvironment();
  },
  
  getServiceModel: function() {
  	return new SMSvcModel(this.getDAO().getContainer());
  },
  
  getParentLayer: function() {
  	var parent = this.getDAO().getDependsOn();
  	return gs.nil(parent) ? null : new SMSvcLayer(parent);
  },
  
  deleteLayer: function() {
  	if(!this.canDelete()) {
  		throw 'Cannot delete a service layer: Permission denied';
  	}
  	
  	var layer = this.getDAO();
  	try {
  		if(gs.nil(layer.getDependsOn())) {
  			layer.getEnvironment().deleteRecord();
  		} else {
  			layer.deleteRecord();
  		}
  	} catch(err) {
  		var displayMessage  = gs.getMessage('Failed to delete a layer');
  		var internalMessage = 'Exception caught in SMSvcLayer.deleteLayer.';
  		throw SMErrorHelper.createJavaAPIError(displayMessage, internalMessage, err);
  	}
  },
  
  getServiceDefinitions: function() {
  	try {
  		var versions = [];
  		
  		var checkouts = this.getDAO().checkedOuts();
  		for(var i =0; i < checkouts.length; i++) {
  			var checkoutId = checkouts[i].getSysId();
  			var activeChkpt = checkouts[i].getTimeLine().getActiveCheckpoint();
  			versions.push(new SMSvcModelVersion(this.getId(), activeChkpt.getSysId(), checkoutId));
  		}

  		var checkedInCheckpoints = this.getDAO().getCheckedIn().getAllCheckpoints();
  		for(var j = 0; j < checkedInCheckpoints.length; j++) {
  			versions.push(new SMSvcModelVersion(this.getId(), checkedInCheckpoints[j].getSysId(), null));
  		}

  		return versions;
  	} catch (err) {
  		var displayMessage  = gs.getMessage('Failed to load the list of versions');
  		var internalMessage = 'Exception caught in SMSvcLayer.getVersions.';
  		throw SMErrorHelper.createJavaAPIError(displayMessage, internalMessage, err);
  	}
  },
  
  //by default set the get the value as empty string
  getConfigurationValue: function(key, defaultValue) {
  	return this.getDAO().getConfigurationValue(key, defaultValue || '');
  },
  
  setConfigurationValue: function(key, value) {
  	this.getDAO().setConfigurationValue(key, value);
  },
  
  type: 'SMSvcLayer'
});

Sys ID

60417891c3822200e2ddb59af3d3ae3c

Offical Documentation

Official Docs: