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
  url = Xml.get(node: xml, tag: 'url');
  onconnected = Xml.get(node: xml, tag: 'onconnected');
  ondisconnected = Xml.get(node: xml, tag: 'ondisconnected');
  onsubscribed = Xml.get(node: xml, tag: 'onsubscribed');
  onunsubscribed = Xml.get(node: xml, tag: 'onunsubscribed');
  onpublished = Xml.get(node: xml, tag: 'onpublished');
  onerror = Xml.get(node: xml, tag: 'onerror');
  onmessage = Xml.get(node: xml, tag: 'onmessage');
  username = Xml.get(node: xml, tag: 'username');
  password = Xml.get(node: xml, tag: 'password');

  // subscriptions
  var subscriptions = Xml.get(node: xml, tag: 'subscriptions')?.split(",");
  subscriptions?.forEach((subscription) {
    if (!isNullOrEmpty(subscription) &&
        !this.subscriptions.contains(subscription.trim())) {
      this.subscriptions.add(subscription.trim());
    }
  });
}