r21325: delete children in reverse order since the array is manipulated during the...
[Samba/gbeck.git] / webapps / qooxdoo-0.6.3-sdk / frontend / framework / source / class / qx / lang / Object.js
blob31e316ef505504eae1e79a86c7e1dd2136037c03
1 /* ************************************************************************
3    qooxdoo - the new era of web development
5    http://qooxdoo.org
7    Copyright:
8      2004-2006 by 1&1 Internet AG, Germany, http://www.1and1.org
10    License:
11      LGPL 2.1: http://www.gnu.org/licenses/lgpl.html
13    Authors:
14      * Sebastian Werner (wpbasti)
15      * Andreas Ecker (ecker)
17 ************************************************************************ */
19 /* ************************************************************************
21 #module(core)
23 ************************************************************************ */
25 qx.OO.defineClass("qx.lang.Object");
27 /*!
28   Function to check if a hash has any keys
30 qx.Class.isEmpty = function(h)
32   for (var s in h) {
33     return false;
34   }
36   return true;
39 qx.Class.hasMinLength = function(h, j)
41   var i=0;
43   for (var s in h)
44   {
45     if ((++i)>=j) {
46       return true;
47     }
48   }
50   return false;
53 qx.Class.getLength = function(h)
55   var i=0;
57   for (var s in h) {
58     i++;
59   }
61   return i;
64 qx.Class.getKeys = function(h)
66   var r = [];
67   for (var s in h) {
68     r.push(s);
69   }
71   return r;
74 qx.Class.getKeysAsString = function(h) {
75   return qx.lang.Object.getKeys(h).join(", ");
78 qx.Class.getValues = function(h)
80   var r = [];
81   for (var s in h) {
82     r.push(h[s]);
83   }
85   return r;
88 qx.Class.mergeWith = function(vObjectA, vObjectB)
90   for (var vKey in vObjectB) {
91     vObjectA[vKey] = vObjectB[vKey];
92   }
94   return vObjectA;
97 qx.Class.carefullyMergeWith = function(vObjectA, vObjectB) {
98   for (vKey in vObjectB)
99   {
100     if (typeof vObjectA[vKey] === "undefined") {
101       vObjectA[vKey] = vObjectB[vKey];
102     }
103   }
105   return vObjectA;
108 qx.Class.merge = function(vObjectA)
110   var vLength = arguments.length;
112   for (var i=1; i<vLength; i++) {
113     qx.lang.Object.mergeWith(vObjectA, arguments[i]);
114   }
116   return vObjectA;
119 qx.Class.copy = function(vObject) {
120   return qx.lang.Object.mergeWith({}, vObject);