deserialize method

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

Deserializes the FML template elements, attributes and children

Implementation

@override
void deserialize(XmlElement xml)
{
  // deserialize
  super.deserialize(xml);

  // properties
  refresh    = Xml.get(node: xml, tag: 'refresh');
  method     = Xml.attribute(node: xml, tag: 'method');
  timeout    = Xml.get(node: xml, tag: 'timeout');
  url        = Xml.get(node: xml, tag: 'url');
  foreground = S.toBool(Xml.get(node: xml, tag: 'foreground'));
  background = S.toBool(Xml.get(node: xml, tag: 'background'));

  // build headers
  var headers = Xml.getChildElements(node: xml, tag: 'header');
  if (headers != null)
  {
    for (var node in headers)
    {
      // set headers
      if (this.headers == null) this.headers = <String,String>{};
      String? key   = Xml.get(node: node, tag: 'key');
      String? value = Xml.get(node: node, tag: 'value');
      if (!S.isNullOrEmpty(key) && !S.isNullOrEmpty(value)) this.headers![key!] = value!;
    }
  }
}