deserialize method

  1. @override
void deserialize(
  1. XmlElement xml
)
override

Implementation

@override
void deserialize(XmlElement xml) {
  // extract body

  // deserialize
  super.deserialize(xml);

  rowcount = 0;

  // properties
  queuetype = Xml.get(node: xml, tag: 'queuetype');
  timetolive = Xml.get(node: xml, tag: 'ttl');
  timetoidle = toInt(Xml.get(node: xml, tag: 'tti'));
  autoexecute = Xml.get(node: xml, tag: 'autoexecute');
  autoquery = Xml.get(node: xml, tag: 'autoquery');
  onsuccess = Xml.get(node: xml, tag: 'onsuccess');
  onreadsuccess = Xml.get(node: xml, tag: 'onreadsuccess');
  onwritesuccess = Xml.get(node: xml, tag: 'onwritesuccess');
  onfail = Xml.get(node: xml, tag: 'onfail');
  statuscode = Xml.get(node: xml, tag: 'statuscode');
  statusmessage = Xml.get(node: xml, tag: 'statusmessage');
  maxrecords = Xml.get(node: xml, tag: 'maxrecords');
  root = Xml.attribute(node: xml, tag: 'root');
  value = Xml.get(node: xml, tag: 'value');
  template = Xml.get(node: xml, tag: 'template');
  enabled = Xml.get(node: xml, tag: 'enabled');

  // set the body
  body = _getBody(xml);
  if (body != null) {
    // set body as custom
    _bodyIsCustom = true;

    // set the data
    data = Data.from(body, root: root);
  }
  // ensure future bodies that contain bindables don't bind
  if (_body == null) body = "";

  // register the datasource with the scope manager
  if (scope != null) scope!.registerDataSource(this);

  // disable in background
  enabledInBackground =
      toBool(Xml.get(node: xml, tag: 'background')) ?? enabledInBackground;
  if (!enabledInBackground) {
    framework?.indexObservable?.registerListener(onIndexChange);
  }
}