class FileDocumentFactory {

    public boolean isFileSupported(final VFSLeaf leaf) {
        final String fileName = leaf.getName();
        if (fileName != null && fileName.startsWith(".")) {
            // don't index all mac os x hidden files
            return false;
        }

        String suffix;
        try {
            suffix = getSuffix(fileName);
        } catch (final DocumentNotImplementedException e) {
            return false;
        }

        // 1. Check if file is not on fileBlackList
        if (fileBlackList.contains(fileName)) {
            // File name is on blacklist
            return false;
        }
        // 2. Check for certain file-type the file size
        if (checkFileSizeSuffixes.contains(suffix)) {
            if ((maxFileSize != 0) && (leaf.getSize() > maxFileSize)) {
                log.info("File too big, exlude from search index. filename=" + fileName);
                excludedFileSizeCount++;
                return false;
            }
        }
        /*
         * 3. Check if suffix is supported if (supportedSuffixes.indexOf(suffix) >= 0) { return true; }
         */
        // index all files (index metadatas)
        return true;
    }

      FileDocumentFactory(final SearchModule searchModule, MimeTypeProvider mimeTypeProvider);
    public  FileDocumentFactory(final SearchModule searchModule);

}