File: dataschema/js/dataschema-base.js
- /**
- * The DataSchema utility provides a common configurable interface for widgets to
- * apply a given schema to a variety of data.
- *
- * @module dataschema
- * @main dataschema
- */
- /**
- * Provides the base DataSchema implementation, which can be extended to
- * create DataSchemas for specific data formats, such XML, JSON, text and
- * arrays.
- *
- * @module dataschema
- * @submodule dataschema-base
- */
- var LANG = Y.Lang,
- /**
- * Base class for the YUI DataSchema Utility.
- * @class DataSchema.Base
- * @static
- */
- SchemaBase = {
- /**
- * Overridable method returns data as-is.
- *
- * @method apply
- * @param schema {Object} Schema to apply.
- * @param data {Object} Data.
- * @return {Object} Schema-parsed data.
- * @static
- */
- apply: function(schema, data) {
- return data;
- },
-
- /**
- * Applies field parser, if defined
- *
- * @method parse
- * @param value {Object} Original value.
- * @param field {Object} Field.
- * @return {Object} Type-converted value.
- */
- parse: function(value, field) {
- if(field.parser) {
- var parser = (LANG.isFunction(field.parser)) ?
- field.parser : Y.Parsers[field.parser+''];
- if(parser) {
- value = parser.call(this, value);
- }
- else {
- Y.log("Could not find parser for field " + Y.dump(field), "warn", "dataschema-json");
- }
- }
- return value;
- }
- };
- Y.namespace("DataSchema").Base = SchemaBase;
- Y.namespace("Parsers");
-