Class FilterBuilder

  • All Implemented Interfaces:
    java.util.function.Predicate<java.lang.String>

    public class FilterBuilder
    extends java.lang.Object
    implements java.util.function.Predicate<java.lang.String>
    include/exclude filter builder
    
     new FilterBuilder().includePackage("java").excludePackage("java.lang")
    
     FilterBuilder.parsePackages("+java, -java.lang")
    
     new FilterBuilder().includePattern("java\\..*").excludePackage("java\\.lang\\..*")
     
    note that includePackage/excludePackage value is mapped into a prefix pattern with a trailing dot, for example: includePackage("a.b") is equivalent to includePattern("a\\.b\\..*)
    • Field Detail

      • chain

        private final java.util.List<java.util.function.Predicate<java.lang.String>> chain
    • Constructor Detail

      • FilterBuilder

        public FilterBuilder()
      • FilterBuilder

        private FilterBuilder​(java.util.Collection<java.util.function.Predicate<java.lang.String>> filters)
    • Method Detail

      • includePackage

        public FilterBuilder includePackage​(java.lang.String value)
        include package prefix
        new FilterBuilder().includePackage("java.lang")
        note that the value is mapped into a prefix pattern with a trailing dot, for example "a.b" == "a\\.b\\..*

        see more in prefixPattern(String)

      • excludePackage

        public FilterBuilder excludePackage​(java.lang.String value)
        exclude package prefix
        new FilterBuilder().excludePackage("java.lang")
        note that the value is mapped into a prefix pattern with a trailing dot, for example "a.b" == "a\\.b\\..*

        see more in prefixPattern(String)

      • includePattern

        public FilterBuilder includePattern​(java.lang.String regex)
        include regular expression
        new FilterBuilder().includePattern("java\\.lang\\..*")
        see also includePackage(String)
      • excludePattern

        public FilterBuilder excludePattern​(java.lang.String regex)
        exclude regular expression
        new FilterBuilder().excludePattern("java\\.lang\\..*")
        see also excludePackage(String)
      • parsePackages

        public static FilterBuilder parsePackages​(java.lang.String includeExcludeString)
        Parses csv of include/exclude package prefix filter, where each value starting with +/-
        FilterBuilder.parsePackages("-java, -javax, +java.util")
        each value is mapped into a prefix pattern with a trailing dot, for example "a.b" == "a\\.b\\..*. see more in prefixPattern(String)
      • add

        public FilterBuilder add​(java.util.function.Predicate<java.lang.String> filter)
      • test

        public boolean test​(java.lang.String regex)
        Specified by:
        test in interface java.util.function.Predicate<java.lang.String>
      • equals

        public boolean equals​(java.lang.Object o)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • prefixPattern

        private static java.lang.String prefixPattern​(java.lang.String fqn)
        maps fqn to prefix pattern with a trailing dot, for example packageNamePrefix("a.b") == "a\\.b\\..*