/** * @author Ed Spencer * @class Ext.data.validations * @extends Object * *

This singleton contains a set of validation functions that can be used to validate any type * of data. They are most often used in {@link Ext.data.Model Models}, where they are automatically * set up and executed.

*/ Ext.define('Ext.data.validations', { singleton: true,
/** * The default error message used when a presence validation fails * @property presenceMessage * @type String */ presenceMessage: 'must be present',
/** * The default error message used when a length validation fails * @property lengthMessage * @type String */ lengthMessage: 'is the wrong length',
/** * The default error message used when a format validation fails * @property formatMessage * @type Boolean */ formatMessage: 'is the wrong format',
/** * The default error message used when an inclusion validation fails * @property inclusionMessage * @type String */ inclusionMessage: 'is not included in the list of acceptable values',
/** * The default error message used when an exclusion validation fails * @property exclusionMessage * @type String */ exclusionMessage: 'is not an acceptable value',
/** * Validates that the given value is present * @param {Object} config Optional config object * @param {Mixed} value The value to validate * @return {Boolean} True if validation passed */ presence: function(config, value) { if (value === undefined) { value = config; } return !!value; },
/** * Returns true if the given value is between the configured min and max values * @param {Object} config Optional config object * @param {String} value The value to validate * @return {Boolean} True if the value passes validation */ length: function(config, value) { if (value === undefined) { return false; } var length = value.length, min = config.min, max = config.max; if ((min && length < min) || (max && length > max)) { return false; } else { return true; } },
/** * Returns true if the given value passes validation against the configured {@link #matcher} regex * @param {Object} config Optional config object * @param {String} value The value to validate * @return {Boolean} True if the value passes the format validation */ format: function(config, value) { return !!(config.matcher && config.matcher.test(value)); },
/** * Validates that the given value is present in the configured {@link #list} * @param {String} value The value to validate * @return {Boolean} True if the value is present in the list */ inclusion: function(config, value) { return config.list && config.list.indexOf(value) != -1; },
/** * Validates that the given value is present in the configured {@link #list} * @param {Object} config Optional config object * @param {String} value The value to validate * @return {Boolean} True if the value is not present in the list */ exclusion: function(config, value) { return config.list && config.list.indexOf(value) == -1; } });