findRoot method
Implementation
String? findRoot(String? name) {
String? root;
if (_list.isNotEmpty) {
// find first repeat instance in the tree
if (name == null) {
bool done = false;
dynamic node = _list.first;
while (!done) {
if (node is Map) {
if (node.entries.isEmpty) done = true;
if (node.entries.length > 1) done = true;
if (node.entries.length == 1) {
var name = node.keys.first;
root = (root == null) ? name : "$root.$name";
node = node.values.first;
if ((node is Map) &&
(node.entries.isNotEmpty) &&
(node.values.first is String)) done = true;
}
} else {
done = true;
}
}
return root;
}
// find named map entry
else {
bool done = false;
dynamic node = _list.first;
while (!done) {
if (node is Map) {
var nodename = node.keys.first;
root = (root == null) ? nodename : "$root.$nodename";
if (node.containsKey(name)) done = true;
node = node.values.first;
} else {
done = true;
}
}
return root;
}
}
return null;
}