src/components/meta/Property.js
function(object, propertyMeta, property) {
        var that = this;

        object['_' + property] = undefined;

        // Adjust property 'type' and 'default fields
        if (_.isArray(propertyMeta)) {
            propertyMeta = propertyMeta.length === 3 || !_.isSimpleObject(propertyMeta[1])
                ? { type: [propertyMeta[0], propertyMeta[2] || {}], default: propertyMeta[1] }
                : { type: propertyMeta }
        }
        else if (!_.isSimpleObject(propertyMeta)) {
            propertyMeta = { default: propertyMeta }
        }

        // Sets default property methods
        if (!('methods' in propertyMeta)) {
            propertyMeta.methods = ['get', 'set', 'has', 'is', 'clear', 'remove']
        }

        object.__setPropertyParam(property, {});

        // Process property meta data by options processors
        _.each(propertyMeta, function(data, option) {
            if (!(option in that._options)) {
                return;
            }

            var processor = that._options[option];

            if (_.isString(processor)) {
                processor = meta(processor);
            }

            processor.process(object, data, property);
        });
    }
function(object, propertyMeta, property) {
        var that = this;

        object['_' + property] = undefined;

        // Adjust property 'type' and 'default fields
        if (_.isArray(propertyMeta)) {
            propertyMeta = propertyMeta.length === 3 || !_.isSimpleObject(propertyMeta[1])
                ? { type: [propertyMeta[0], propertyMeta[2] || {}], default: propertyMeta[1] }
                : { type: propertyMeta }
        }
        else if (!_.isSimpleObject(propertyMeta)) {
            propertyMeta = { default: propertyMeta }
        }

        // Sets default property methods
        if (!('methods' in propertyMeta)) {
            propertyMeta.methods = ['get', 'set', 'has', 'is', 'clear', 'remove']
        }

        object.__setPropertyParam(property, {});

        // Process property meta data by options processors
        _.each(propertyMeta, function(data, option) {
            if (!(option in that._options)) {
                return;
            }

            var processor = that._options[option];

            if (_.isString(processor)) {
                processor = meta(processor);
            }

            processor.process(object, data, property);
        });
    }
function ( object , propertyMeta , property ) { var that = this ; object [ '_' + property ] = undefined ; // Adjust property 'type' and 'default fields if ( _ . isArray ( propertyMeta ) ) { propertyMeta = propertyMeta . length === 3 || ! _ . isSimpleObject ( propertyMeta [ 1 ] ) ? { type : [ propertyMeta [ 0 ] , propertyMeta [ 2 ] || { } ] , default : propertyMeta [ 1 ] } : { type : propertyMeta } } else if ( ! _ . isSimpleObject ( propertyMeta ) ) { propertyMeta = { default : propertyMeta } } // Sets default property methods if ( ! ( 'methods' in propertyMeta ) ) { propertyMeta . methods = [ 'get' , 'set' , 'has' , 'is' , 'clear' , 'remove' ] } object . __setPropertyParam ( property , { } ) ; // Process property meta data by options processors _ . each ( propertyMeta , function ( data , option ) { if ( ! ( option in that . _options ) ) { return ; } var processor = that . _options [ option ] ; if ( _ . isString ( processor ) ) { processor = meta ( processor ) ; } processor . process ( object , data , property ) ; } ) ; }
Process single property for clazz

@param {clazz|object} object         Clazz or its prototype
@param {object}       propertyMeta   Property meta data
@param {string}       property       Property name

@this {metaProcessor}
Process single property for clazz