diff -r 000000000000 -r 40c8f766c9b8 src/cm/media/js/lib/yui/yui3.0.0/api/State.js.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cm/media/js/lib/yui/yui3.0.0/api/State.js.html Mon Nov 23 15:14:29 2009 +0100 @@ -0,0 +1,256 @@ + + + + + API: attribute State.js (YUI Library) + + + + + + + + + + +
+
+

Yahoo! UI Library

+

attribute  3.0.0

+ Yahoo! UI Library + > attribute + + > State.js (source view) +
+
+ Search: +
+   +
+
+
+
+ +
+
+
+
+
+ Filters + + + +
+
+ +
+ +
    /**
+     * The State class maintains state for a collection of named items, with 
+     * a varying number of properties defined.
+     *
+     * It avoids the need to create a separate class for the item, and separate instances 
+     * of these classes for each item, by storing the state in a 2 level hash table, 
+     * improving performance when the number of items is likely to be large.
+     *
+     * @constructor
+     * @class State
+     */
+    Y.State = function() { 
+        /**
+         * Hash of attributes
+         * @property data
+         */
+        this.data = {};
+    };
+
+    Y.State.prototype = {
+
+        /**
+         * Adds a property to an item.
+         *
+         * @method add
+         * @param name {String} The name of the item.
+         * @param key {String} The name of the property.
+         * @param val {Any} The value of the property.
+         */
+        add : function(name, key, val) {
+            var d = this.data;
+            d[key] = d[key] || {};
+            d[key][name] = val;
+        },
+
+        /**
+         * Adds multiple properties to an item.
+         *
+         * @method addAll
+         * @param name {String} The name of the item.
+         * @param o {Object} A hash of property/value pairs.
+         */
+        addAll: function(name, o) {
+            var key;
+            for (key in o) {
+                if (o.hasOwnProperty(key)) {
+                    this.add(name, key, o[key]);
+                }
+            }
+        },
+
+        /**
+         * Removes a property from an item.
+         *
+         * @method remove
+         * @param name {String} The name of the item.
+         * @param key {String} The property to remove.
+         */
+        remove: function(name, key) {
+            var d = this.data;
+            if (d[key] && (name in d[key])) {
+                delete d[key][name];
+            }
+        },
+
+        /**
+         * Removes multiple properties from an item, or remove the item completely.
+         *
+         * @method removeAll
+         * @param name {String} The name of the item.
+         * @param o {Object|Array} Collection of properties to delete. If not provided, the entire item is removed.
+         */
+        removeAll: function(name, o) {
+            var d = this.data;
+
+            Y.each(o || d, function(v, k) {
+                if(Y.Lang.isString(k)) {
+                    this.remove(name, k);
+                } else {
+                    this.remove(name, v);
+                }
+            }, this);
+        },
+
+        /**
+         * For a given item, returns the value of the property requested, or undefined if not found.
+         *
+         * @method get
+         * @param name {String} The name of the item
+         * @param key {String} Optional. The property value to retrieve.
+         * @return {Any} The value of the supplied property.
+         */
+        get: function(name, key) {
+            var d = this.data;
+            return (d[key] && name in d[key]) ?  d[key][name] : undefined;
+        },
+
+        /**
+         * For the given item, returns a disposable object with all of the
+         * item's property/value pairs.
+         *
+         * @method getAll
+         * @param name {String} The name of the item
+         * @return {Object} An object with property/value pairs for the item.
+         */
+        getAll : function(name) {
+            var d = this.data, o;
+
+            Y.each(d, function(v, k) {
+                if (name in d[k]) {
+                    o = o || {};
+                    o[k] = v[name];
+                }
+            }, this);
+
+            return o;
+        }
+    };
+
+ +
+
+
+ +
+
+
+ Copyright © 2009 Yahoo! Inc. All rights reserved. +
+
+ + +