findRoot method

String? findRoot(
  1. String? name
)

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;
}