processChildren method
Iterable<NodeData>
processChildren(
- Status status,
- NodeControl control,
- FlowMessage message
override
Implementation
@override
Iterable<NodeData> processChildren(Status status, NodeControl control, FlowMessage message) sync* {
xml.XmlElement element = node as xml.XmlElement;
String item = element.getAttribute("item") ?? "item";
String index = element.getAttribute("index") ?? "index";
List? arr;
xml.XmlAttribute? fnode = element.getAttributeNode("array");
if (fnode != null) {
arr = status.execute(fnode.value) as List?;
}
if (arr == null) {
fnode = element.getAttributeNode("count");
arr = [];
if (fnode != null) {
var num = status.execute(fnode.value);
if (num is int) {
for (int i = 0; i < num; ++i) {
arr.add(i);
}
}
}
}
if (arr.length > 0) {
for (int i = 0, t = arr.length; i < t; ++i) {
Status newStatus = status.child({
item: arr[i],
index: i
});
FlowMessage message = FlowMessage();
for (var child in children) {
yield* child.generate(newStatus, control, message);
}
}
}
}