@NotNull
    @Override
    List<FileNode> getChildren(@NotNull List<? extends FileNode> oldList) {
      visibility = ThreeState.NO;

      VirtualFile file = getVirtualFile();
      if (!file.isValid()) return emptyList();

      ProjectNode parent = findParent(ProjectNode.class);
      if (parent == null) return emptyList();

      visibility = ThreeState.UNSURE;

      VirtualFile[] children = file.getChildren();
      if (children == null || children.length == 0) return emptyList();

      Mapper mapper = new Mapper(oldList);
      return Arrays.stream(children)
        .filter(child -> isValidChild(child, parent.project))
        .map(child -> mapper.apply(child, id))
        .collect(toList());
    }
@NotNull
    @Override
    List<FileNode> getChildren(@NotNull List<? extends FileNode> oldList)