UNPKG

processmaker-builder

Version:

The gulp task runner for ProcessMaker building

126 lines 2.88 kB
/** * @class CollectionRules * @param collectionRules * @constructor */ var CollectionRules = function (collectionRules) { /** * Type Shape * @type {String} */ this.typeShape = null; /** * Array of Rules * @type {Rules} */ this.rules = new PMUI.util.ArrayList(); this.init(collectionRules); }; /** * Inicialize CollectionRules * @param collectionRules */ CollectionRules.prototype.init = function (collectionRules) { if (typeof collectionRules === "object") { this.setTypeShape(collectionRules.typeShape); this.loadRules(collectionRules.rules); } }; /** * Get type shape * @returns {String} */ CollectionRules.prototype.getTypeShape = function () { return this.typeShape; }; /** * Validate type shape * @param typeShape * @returns {Boolean} */ CollectionRules.prototype.isTypeShape = function (typeShape) { var isType = false; if (typeShape === this.getTypeShape()) { isType = true; } return isType; }; /** * Get Array Rules * @returns {Array Rules} */ CollectionRules.prototype.getRules = function () { return this.rules; }; /** * Get Item Rule * @returns {ItemRule} */ CollectionRules.prototype.getItemRule = function (codeRule) { var itemRule, itemsRules; if (codeRule) { itemsRules = this.getRules(); itemRule = itemsRules.find("code", codeRule); } return itemRule; }; /** * Set type shape * @param typeShape * @returns {CollectionRules} */ CollectionRules.prototype.setTypeShape = function (typeShape) { this.typeShape = (typeShape && typeof typeShape === "string") ? typeShape : this.typeShape; return this; }; /** * Set array rules * @param arrRules * @returns {CollectionRules} */ CollectionRules.prototype.setRules = function (arrRules) { if (arrRules && Array.isArray(arrRules)) { this.rules = arrRules; } return this; }; /** * Load rules array * @param arrRules * @returns {CollectionRules} */ CollectionRules.prototype.loadRules = function (arrRules) { var itemRule, i, max; if (arrRules && Array.isArray(arrRules) && arrRules.length > 0) { max = arrRules.length; for (i = 0; i < max; i += 1) { itemRule = new ItemRule(arrRules[i]); this.rules.insert(itemRule); } } return this; }; /** * Add new ItemRule object * @param itemRule {Object} */ CollectionRules.prototype.addItemRule = function (itemRule) { if (itemRule && typeof itemRule === "object") { this.rules.insert(itemRule); } return this; }; /** * Remove ItemRule object * @param itemRule * @returns {CollectionRules} */ CollectionRules.prototype.removeItemRule = function (itemRule) { if (itemRule && typeof itemRule === "object") { this.rules.remove(itemRule); } return this; };