Class ExtensibleFilter

java.lang.Object
org.jboss.vfs.util.ExtensibleFilter
All Implemented Interfaces:
VirtualFileFilter

public class ExtensibleFilter extends Object implements VirtualFileFilter
An extensible filter for VFS files. Three arrays are maintained for checking: a prefix, suffix, and match array. If the filename starts with any of the prefixes, ends with any of the suffixes, or exactly matches any of the matches, then the accepts method will return false.

NOTE: the arrays *must* be sorted for the string matching to work, and suffixes use the 'reverseComparator'

Version:
$Revision: 57108 $
  • Field Details

    • reverseComparator

      private static final Comparator<String> reverseComparator
      Compare the strings backwards. This assists in suffix comparisons.
    • DEFAULT_PREFIXES

      private static final String[] DEFAULT_PREFIXES
      the default prefix list
    • DEFAULT_SUFFIXES

      private static final String[] DEFAULT_SUFFIXES
      the default suffix list
    • DEFAULT_MATCHES

      private static final String[] DEFAULT_MATCHES
      the default matches list
    • suffixes

      private List<String> suffixes
      The list of disallowed suffixes, sorted using reverse values
    • prefixes

      private List<String> prefixes
      The sorted list of disallowed prefixes
    • matches

      private List<String> matches
      The sorted list of disallowed values
  • Constructor Details

    • ExtensibleFilter

      public ExtensibleFilter()
      Use the default values for suffixes, prefixes, and matches
    • ExtensibleFilter

      public ExtensibleFilter(String[] matches, String[] prefixes, String[] suffixes)
      Create using a custom set of matches, prefixes, and suffixes. If any of these arrays are null, then the corresponding default will be substituted.
      Parameters:
      matches - the matches
      prefixes - the prefixes
      suffixes - the suffixes
  • Method Details

    • addPrefix

      public void addPrefix(String prefix)
    • addPrefixes

      public void addPrefixes(String[] prefixes)
    • delPrefix

      public void delPrefix(String prefix)
    • delPrefixes

      public void delPrefixes(String[] prefixes)
    • addSuffix

      public void addSuffix(String suffix)
    • addSuffixes

      public void addSuffixes(String[] suffixes)
    • delSuffix

      public void delSuffix(String suffix)
    • delSuffixes

      public void delSuffixes(String[] suffixes)
    • getSuffixes

      public String[] getSuffixes()
    • setSuffixes

      public void setSuffixes(String[] suffixes)
    • getPrefixes

      public String[] getPrefixes()
    • setPrefixes

      public void setPrefixes(String[] prefixes)
    • getMatches

      public String[] getMatches()
    • setMatches

      public void setMatches(String[] matches)
    • accepts

      public boolean accepts(VirtualFile file)
      If the filename matches any string in the prefix, suffix, or matches array, return false. Perhaps a bit of overkill, but this method operates in log(n) time, where n is the size of the arrays.
      Specified by:
      accepts in interface VirtualFileFilter
      Parameters:
      file - The file to be tested
      Returns:
      false if the filename matches any of the prefixes, suffixes, or matches.