package org.limewire.core.api.file; import java.io.File; import java.util.Collection; import java.util.List; import org.limewire.core.api.Category; import com.google.common.base.Predicate; /** Utility methods for dealing with file categories. */ public interface CategoryManager { /** * Returns a filter that allows only Windows programs files. The filter * matches against extension only, not on the full filename. */ Predicate<String> getWindowsProgramsFilter(); /** * Returns a filter that allows only OSX & Linux programs files. The filter * matches against extension only, not on the full filename. */ Predicate<String> getOsxAndLinuxProgramsFilter(); /** * Returns a filter that allows only files for the given category. The * filter matches against extension only, not on the full filename. */ Predicate<String> getExtensionFilterForCategory(Category category); /** Returns the category that best matches the given extension. */ Category getCategoryForExtension(String extension); /** Returns the category that best matches the given filename. */ Category getCategoryForFilename(String filename); /** Returns the category that best matches the given file. */ Category getCategoryForFile(File file); /** * @return if any given file is of the category of type. */ boolean containsCategory(Category category, List<String> list); /** Gets all extensions for a given category. */ Collection<String> getExtensionsForCategory(Category category); }