(function(window) { var Gitana = window.Gitana; Gitana.WorkflowModel = Gitana.AbstractPlatformObject.extend( /** @lends Gitana.WorkflowModel.prototype */ { /** * @constructs * @augments Gitana.AbstractPlatformObject * * @class WorkflowModel * * @param {Gitana.Platform} platform * @param [Object] object json object (if no callback required for populating) */ constructor: function(platform, object) { this.base(platform, object); this.objectType = function() { return "Gitana.WorkflowModel"; }; }, /** * @OVERRIDE */ getType: function() { return Gitana.TypedIDConstants.TYPE_WORKFLOW_MODEL; }, /** * @OVERRIDE */ getUri: function() { return "/workflow/models/" + this.id + "/versions/" + this.version; }, /** * @override */ clone: function() { return this.getFactory().workflowModel(this.getPlatform(), this); }, /** * Update the workflow model. * * @param [string] force whether to force the update if the model is already deployed * * @chained this * * @public */ update: function(force) { var self = this; var params = {}; if (force) { params.force = true; } var uriFunction = function() { return self.getUri(); }; return this.chainUpdate(null, uriFunction, params); }, /** * Deploys this workflow model. * * @returns {*} */ deploy: function() { var self = this; var uriFunction = function() { return self.getUri() + "/deploy"; }; return this.chainPostEmpty(null, uriFunction); }, /** * Undeploys this workflow model. * * @returns {*} */ undeploy: function() { var self = this; var uriFunction = function() { return self.getUri() + "/undeploy"; }; return this.chainPostEmpty(null, uriFunction); } }); })(window);