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') ?? Xml.get(node: xml, tag: 'URL');
  canRunInForeground = toBool(Xml.get(node: xml, tag: 'foreground')) ?? true;
  canRunInBackground = toBool(Xml.get(node: xml, tag: 'background')) ?? false;

  // 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 (!isNullOrEmpty(key) && !isNullOrEmpty(value)) {
        this.headers![key!] = value!;
      }
    }
  }
}