org.apache.royale.utils.MXMLDataInterpreter.generateMXMLProperties = function()

in asdoc/org/apache/royale/utils/MXMLDataInterpreter.js [312:375]


org.apache.royale.utils.MXMLDataInterpreter.generateMXMLProperties = function(host, data) {
  var /** @type {number} */ j = 0;
  var /** @type {number} */ m = 0;
  if (!data)
    return;
  var /** @type {number} */ i = 0;
  //var /** @type {number} */ m = 0;
  //var /** @type {number} */ j = 0;
  var /** @type {string} */ name;
  var /** @type {*} */ simple;
  var /** @type {Object} */ value;
  var /** @type {string} */ id = null;
  m = (data[i++]) >> 0;
  var /** @type {number} */ beadOffset = (i + (m - 1) * 3) >> 0;
  if (m > 0 && data[beadOffset] == "beads") {
    m--;
  }
  else
    beadOffset = -1;
  for (j = 0; j < m; j++) {
    name = org.apache.royale.utils.Language.string(data[i++]);
    simple = data[i++];
    value = data[i++];
    if (simple == null)
      value = org.apache.royale.utils.MXMLDataInterpreter.generateMXMLArray(host, null, value);
    else if (simple == false)
      value = org.apache.royale.utils.MXMLDataInterpreter.generateMXMLObject(host, value);
    if (name == "id")
      id = value;
    if (name == "_id")
      id = value;
    else
      host[name] = value;
  }
  if (beadOffset > -1) {
    name = org.apache.royale.utils.Language.string(data[i++]);
    simple = data[i++];
    value = data[i++];
    if (simple == null)
      value = org.apache.royale.utils.MXMLDataInterpreter.generateMXMLArray(host, null, value);
    else if (simple == false)
      value = org.apache.royale.utils.MXMLDataInterpreter.generateMXMLObject(host, value);
    host[name] = value;
  }
  m = (data[i++]) >> 0;
  for (j = 0; j < m; j++) {
    name = org.apache.royale.utils.Language.string(data[i++]);
    simple = data[i++];
    value = data[i++];
    if (simple == null)
      value = org.apache.royale.utils.MXMLDataInterpreter.generateMXMLArray(host, null, value);
    else if (simple == false)
      value = org.apache.royale.utils.MXMLDataInterpreter.generateMXMLObject(host, value);
    host[name] = value;
  }
  
  m = (data[i++]) >> 0;
  for (j = 0; j < m; j++) {
    name = org.apache.royale.utils.Language.string(data[i++]);
    value = data[i++];
    
    host.addEventListener(name, goog.bind( /** @type {Function} */ (value), host));
  }
};