Class ExtensibleFilter

  • All Implemented Interfaces:
    VirtualFileFilter

    public class ExtensibleFilter
    extends java.lang.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 Summary

      Fields 
      Modifier and Type Field Description
      private static java.lang.String[] DEFAULT_MATCHES
      the default matches list
      private static java.lang.String[] DEFAULT_PREFIXES
      the default prefix list
      private static java.lang.String[] DEFAULT_SUFFIXES
      the default suffix list
      private java.util.List<java.lang.String> matches
      The sorted list of disallowed values
      private java.util.List<java.lang.String> prefixes
      The sorted list of disallowed prefixes
      private static java.util.Comparator<java.lang.String> reverseComparator
      Compare the strings backwards.
      private java.util.List<java.lang.String> suffixes
      The list of disallowed suffixes, sorted using reverse values
    • Constructor Summary

      Constructors 
      Constructor Description
      ExtensibleFilter()
      Use the default values for suffixes, prefixes, and matches
      ExtensibleFilter​(java.lang.String[] matches, java.lang.String[] prefixes, java.lang.String[] suffixes)
      Create using a custom set of matches, prefixes, and suffixes.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean accepts​(VirtualFile file)
      If the filename matches any string in the prefix, suffix, or matches array, return false.
      void addPrefix​(java.lang.String prefix)  
      void addPrefixes​(java.lang.String[] prefixes)  
      void addSuffix​(java.lang.String suffix)  
      void addSuffixes​(java.lang.String[] suffixes)  
      void delPrefix​(java.lang.String prefix)  
      void delPrefixes​(java.lang.String[] prefixes)  
      void delSuffix​(java.lang.String suffix)  
      void delSuffixes​(java.lang.String[] suffixes)  
      java.lang.String[] getMatches()  
      java.lang.String[] getPrefixes()  
      java.lang.String[] getSuffixes()  
      void setMatches​(java.lang.String[] matches)  
      void setPrefixes​(java.lang.String[] prefixes)  
      void setSuffixes​(java.lang.String[] suffixes)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • reverseComparator

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

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

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

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

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

        private java.util.List<java.lang.String> prefixes
        The sorted list of disallowed prefixes
      • matches

        private java.util.List<java.lang.String> matches
        The sorted list of disallowed values
    • Constructor Detail

      • ExtensibleFilter

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

        public ExtensibleFilter​(java.lang.String[] matches,
                                java.lang.String[] prefixes,
                                java.lang.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 Detail

      • addPrefix

        public void addPrefix​(java.lang.String prefix)
      • addPrefixes

        public void addPrefixes​(java.lang.String[] prefixes)
      • delPrefix

        public void delPrefix​(java.lang.String prefix)
      • delPrefixes

        public void delPrefixes​(java.lang.String[] prefixes)
      • addSuffix

        public void addSuffix​(java.lang.String suffix)
      • addSuffixes

        public void addSuffixes​(java.lang.String[] suffixes)
      • delSuffix

        public void delSuffix​(java.lang.String suffix)
      • delSuffixes

        public void delSuffixes​(java.lang.String[] suffixes)
      • getSuffixes

        public java.lang.String[] getSuffixes()
      • setSuffixes

        public void setSuffixes​(java.lang.String[] suffixes)
      • getPrefixes

        public java.lang.String[] getPrefixes()
      • setPrefixes

        public void setPrefixes​(java.lang.String[] prefixes)
      • getMatches

        public java.lang.String[] getMatches()
      • setMatches

        public void setMatches​(java.lang.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.