Name

sn_devstudio.FileTypeFileBuilder

Description

Builder for creating new file instances for the FileType handlers

Script

var FileTypeFileBuilder = (function() {
  
  return {
  	newFile : function() {
  		var file = {};
  		var builder = {
  			withId : valueSetter('id'),
  			withName : valueSetter('name'),
  			withSysId : valueSetter('sysId'),
  			withAlternateName : valueSetter('alternateName'),
  			addCustom : function (field, value) {
  				if (!file.extra)
  					file.extra = {};
  				file.extra[field] = value;
  				return builder;
  			},
  			build : function() {
  				checkProperty('id');
  				checkProperty('name');
  				checkProperty('sysId');
  				return file;
  			}
  		};
  		
  		return builder;
  		
  		function valueSetter(field) {
  			return _.partial(setValue, field);
  		}
  		
  		function setValue(field, value) {
  			file[field] = value;
  			return builder;
  		}
  		
  		function checkProperty(propertyName) {
  			if (typeof file[propertyName] === 'undefined')
  				throw new Error("Property " + propertyName + " must be defined to build a file");
  		}
  	}
  }
  
})();

Sys ID

c1f212e8eb40020007e48c1cf106fe8f

Offical Documentation

Official Docs: