class ChecklistExporter {

    List<ForcedRoot> traverse(final Session session, final List<String> paths) throws RepositoryException {
        final List<ForcedRoot> roots = new ArrayList<>();
        final NamespaceMapping mapping = new NamespaceMapping(new SessionNamespaceResolver(session));
        for (String path : paths) {
            if (session.nodeExists(path)) {
                nodeToRoot(session.getNode(path), mapping).ifPresent(roots::add);
            }
        }
        return roots;
    }

    private  ChecklistExporter(final List<Op> operations,
                              final List<String> exportTypeDefs,
                              final List<Rule> pathScopes,
                              final List<Rule> nodeTypeFilters,
                              final List<JcrNs> jcrNamespaces);

}