src/cm/media/js/lib/yui/yui_3.0.0b1/build/dataschema/dataschema-base.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 0 40c8f766c9b8
permissions -rw-r--r--
add link to "privacy policy" in the header test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     1
/*
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     2
Copyright (c) 2009, Yahoo! Inc. All rights reserved.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     3
Code licensed under the BSD License:
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     4
http://developer.yahoo.net/yui/license.txt
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     5
version: 3.0.0b1
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     6
build: 1163
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     7
*/
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     8
YUI.add('dataschema-base', function(Y) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
     9
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    10
/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    11
 * The DataSchema utility provides a common configurable interface for widgets to
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    12
 * apply a given schema to a variety of data.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    13
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    14
 * @module dataschema
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    15
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    16
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    17
/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    18
 * Provides the base DataSchema implementation, which can be extended to 
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    19
 * create DataSchemas for specific data formats, such XML, JSON, text and
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    20
 * arrays.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    21
 *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    22
 * @module dataschema
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    23
 * @submodule dataschema-base
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    24
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    25
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    26
var LANG = Y.Lang,
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    27
/**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    28
 * Base class for the YUI DataSchema Utility.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    29
 * @class DataSchema.Base
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    30
 * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    31
 */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    32
    SchemaBase = {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    33
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    34
     * Overridable method returns data as-is.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    35
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    36
     * @method apply
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    37
     * @param schema {Object} Schema to apply.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    38
     * @param data {Object} Data.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    39
     * @return {Object} Schema-parsed data.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    40
     * @static
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    41
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    42
    apply: function(schema, data) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    43
        return data;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    44
    },
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    45
    
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    46
    /**
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    47
     * Applies field parser, if defined
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    48
     *
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    49
     * @method parse
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    50
     * @param value {Object} Original value.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    51
     * @param field {Object} Field.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    52
     * @return {Object} Type-converted value.
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    53
     */
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    54
    parse: function(value, field) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    55
        if(field.parser) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    56
            var parser = (LANG.isFunction(field.parser)) ?
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    57
            field.parser : Y.Parsers[field.parser+''];
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    58
            if(parser) {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    59
                value = parser.call(this, value);
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    60
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    61
            else {
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    62
            }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    63
        }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    64
        return value;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    65
    }
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    66
};
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    67
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    68
Y.namespace("DataSchema").Base = SchemaBase;
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    69
Y.namespace("Parsers");
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    70
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    71
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    72
40c8f766c9b8 import from internal svn r 4007
raph
parents:
diff changeset
    73
}, '3.0.0b1' ,{requires:['base']});