1 goog.provide('Banana.Util.ValidationManager'); 2 3 /** 4 * Validation manager. Helper to centralize validators 5 * 6 * @constructor 7 */ 8 Banana.Util.ValidationManager = function() 9 { 10 var validators = []; 11 12 function hasValidator(validator) 13 { 14 for (i = 0,len = validators.length; i < len; i++) 15 { 16 if (validators[i].id == validator.id) 17 { 18 return true; 19 } 20 } 21 22 return false; 23 } 24 25 return( { 26 27 /** 28 * adds a validator to the manager 29 * 30 * @param {Banana.Controls.Decorators.Validator} validator 31 */ 32 addValidator : function(validator) 33 { 34 if (!hasValidator(validator)) 35 { 36 validators.push(validator); 37 } 38 }, 39 40 /** 41 * @return {boolean} true when validator exists in manager 42 * 43 * @param {Banana.Controls.Decorators.Validator} validator 44 */ 45 hasValidator : function(validator) 46 { 47 if (validators.indexOf(validator) == -1) return false; 48 49 return true; 50 }, 51 52 /** 53 * removes validator 54 * 55 * @param {Banana.Controls.Decorators.Validator} validator 56 */ 57 removeValidator : function(validator) 58 { 59 var iOfV = validators.indexOf(validator); 60 61 validators.splice(iOfV,i); 62 }, 63 64 /** 65 * removes all validators 66 */ 67 removeValidators : function() 68 { 69 validators = []; 70 }, 71 72 /** 73 * validates specific validator 74 * 75 * @param {Banana.Controls.Decorators.Validator} validator 76 */ 77 validate : function(validator) 78 { 79 return validator.isValid(); 80 }, 81 82 /** 83 * validates all added validators 84 */ 85 validateAll : function() 86 { 87 var ok = true; 88 89 for (i = 0,len = validators.length; i < len; i++) 90 { 91 if (!validators[i] || !validators[i].id) 92 { 93 continue; 94 } 95 96 if (!validators[i].isValid()) 97 { 98 ok = false; 99 } 100 } 101 return ok; 102 } 103 }); 104 }()