relatives property

  1. @override
Future<Iterable<Tuple2<Relation, Node>>> relatives
override

Relatives of this node that can be generated if/when needed. Subclasses must implement this getter, while making sure each generated Relation either starts or ends at this Node.

Implementation

@override
Future<Iterable<Tuple2<Relation, Node>>> get relatives async {
  return Directory(path).list().where((e) {
    return !FileSystemEntity.isLinkSync(path);
  }).map<Tuple2<Relation, Node>>((e) {
    Node n;
    Relation r;
    if (FileSystemEntity.isDirectorySync(e.path)) {
      n = FileSystemFolderNode(e.path);
    } else {
      n = FileSystemFileNode(e.path);
    }
    r = FileSystemContainsRelation(id, n.id);
    return Tuple2(r, n);
  }).toList();
}