processChildren method

  1. @override
Iterable<NodeData> processChildren(
  1. Status status,
  2. NodeControl control,
  3. FlowMessage message
)
override

Implementation

@override
Iterable<NodeData> processChildren(Status status, NodeControl control, FlowMessage message) sync* {
  xml.XmlElement element = node as xml.XmlElement;
  xml.XmlAttribute? fnode = element.getAttributeNode("candidate");
  bool candidate = false;
  if (fnode != null) {
    var res = status.execute(fnode.value);
    if (res is String) candidate = res == "true";
    else if (res is bool) candidate = res;
  }

  if (candidate) {
    FlowMessage message = FlowMessage();
    for (var child in children) {
      yield* child.generate(status, control, message);
    }
  }
  message.set(_ifFlowType, candidate);
}