class FileLoader {

    public List<Path> loadPaths(final Path path,
                                final String suffix) {
        PortablePreconditions.checkNotNull("path",
                                           path);
        PortablePreconditions.checkNotNull("suffix",
                                           suffix);

        org.uberfire.java.nio.file.Path nioPath = Paths.convert(path);

        // Check Path exists
        final List<Path> items = new ArrayList<>();
        if (!Files.exists(nioPath)) {
            return items;
        }

        // Ensure Path represents a Folder
        if (!Files.isDirectory(nioPath)) {
            nioPath = nioPath.getParent();
        }

        final Set<ValueIndexTerm> queryTerms = new HashSet<>();

        final ArrayList<String> extensions = new ArrayList<>();
        extensions.add(suffix);
        queryTerms.add(new LibraryValueRepositoryRootIndexTerm(Paths.convert(nioPath).toURI(), ValueIndexTerm.TermSearchType.NORMAL));
        queryTerms.add(new LibraryValueFileExtensionIndexTerm(extensions));

        final List<RefactoringPageRow> rows = refactoringQueryService.query(FindAllLibraryAssetsQuery.NAME,
                                                                            queryTerms);

        for (RefactoringPageRow row : rows) {
            items.add((Path) row.getValue());
        }

        return items;
    }

}