Class FilterImpl

  • All Implemented Interfaces:
    org.osgi.framework.Filter

    public class FilterImpl
    extends java.lang.Object
    implements org.osgi.framework.Filter
    This filter implementation is based on the official OSGi filter with additional support for the SUPERSET (>*) and SUBSET (<*) operators. This filter also has a few optimizations (cached transformation).
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(java.lang.Object obj)
      Compares this Filter to another Filter.
      int hashCode()
      Returns the hashCode for this Filter.
      boolean match​(java.util.Dictionary dictionary)
      Filter using a Dictionary.
      boolean match​(org.osgi.framework.ServiceReference reference)
      Filter using a service's properties.
      boolean matchCase​(java.util.Dictionary dictionary)
      Filter with case sensitivity using a Dictionary.
      boolean matchCase​(java.util.Map map)
      Filter using a Map.
      boolean matches​(java.util.Map<java.lang.String,​?> map)
      Filter using a Map.
      static FilterImpl newInstance​(java.lang.String filterString)
      Constructs a FilterImpl object.
      static FilterImpl newInstance​(java.lang.String filterString, boolean ignoreCase)  
      java.lang.String toString()
      Returns this Filter's filter string.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    • Method Detail

      • newInstance

        public static FilterImpl newInstance​(java.lang.String filterString)
                                      throws org.osgi.framework.InvalidSyntaxException
        Constructs a FilterImpl object. This filter object may be used to match a ServiceReference or a Dictionary.

        If the filter cannot be parsed, an InvalidSyntaxException will be thrown with a human readable message where the filter became unparsable.

        Parameters:
        filterString - the filter string.
        Returns:
        A new filter
        Throws:
        org.osgi.framework.InvalidSyntaxException - If the filter parameter contains an invalid filter string that cannot be parsed.
      • newInstance

        public static FilterImpl newInstance​(java.lang.String filterString,
                                             boolean ignoreCase)
                                      throws org.osgi.framework.InvalidSyntaxException
        Throws:
        org.osgi.framework.InvalidSyntaxException
      • match

        public boolean match​(org.osgi.framework.ServiceReference reference)
        Filter using a service's properties.

        This Filter is executed using the keys and values of the referenced service's properties. The keys are case insensitively matched with this Filter.

        Specified by:
        match in interface org.osgi.framework.Filter
        Parameters:
        reference - The reference to the service whose properties are used in the match.
        Returns:
        true if the service's properties match this Filter; false otherwise.
      • match

        public boolean match​(java.util.Dictionary dictionary)
        Filter using a Dictionary. This Filter is executed using the specified Dictionary's keys and values. The keys are case insensitively matched with this Filter.
        Specified by:
        match in interface org.osgi.framework.Filter
        Parameters:
        dictionary - The Dictionary whose keys are used in the match.
        Returns:
        true if the Dictionary's keys and values match this filter; false otherwise.
        Throws:
        java.lang.IllegalArgumentException - If dictionary contains case variants of the same key name.
      • matchCase

        public boolean matchCase​(java.util.Dictionary dictionary)
        Filter with case sensitivity using a Dictionary. This Filter is executed using the specified Dictionary's keys and values. The keys are case sensitively matched with this Filter.
        Specified by:
        matchCase in interface org.osgi.framework.Filter
        Parameters:
        dictionary - The Dictionary whose keys are used in the match.
        Returns:
        true if the Dictionary's keys and values match this filter; false otherwise.
        Since:
        1.3
      • matchCase

        public boolean matchCase​(java.util.Map map)
        Filter using a Map. This Filter is executed using the specified Map's keys and values. The keys are case insensitively matched with this Filter.
        Parameters:
        map - The Map whose keys are used in the match.
        Returns:
        true if the Map's keys and values match this filter; false otherwise.
        Throws:
        java.lang.IllegalArgumentException - If map contains case variants of the same key name.
      • matches

        public boolean matches​(java.util.Map<java.lang.String,​?> map)
        Filter using a Map. This Filter is executed using the specified Map's keys and values. The keys are case insensitively matched with this Filter.
        Specified by:
        matches in interface org.osgi.framework.Filter
        Parameters:
        map - The Map whose keys are used in the match.
        Returns:
        true if the Map's keys and values match this filter; false otherwise.
        Throws:
        java.lang.IllegalArgumentException - If map contains case variants of the same key name.
      • toString

        public java.lang.String toString()
        Returns this Filter's filter string.

        The filter string is normalized by removing whitespace which does not affect the meaning of the filter.

        Specified by:
        toString in interface org.osgi.framework.Filter
        Overrides:
        toString in class java.lang.Object
        Returns:
        This Filter's filter string.
      • equals

        public boolean equals​(java.lang.Object obj)
        Compares this Filter to another Filter.

        This implementation returns the result of calling this.toString().equals(obj.toString().

        Specified by:
        equals in interface org.osgi.framework.Filter
        Overrides:
        equals in class java.lang.Object
        Parameters:
        obj - The object to compare against this Filter.
        Returns:
        If the other object is a Filter object, then returns the result of calling this.toString().equals(obj.toString(); false otherwise.
      • hashCode

        public int hashCode()
        Returns the hashCode for this Filter.

        This implementation returns the result of calling this.toString().hashCode().

        Specified by:
        hashCode in interface org.osgi.framework.Filter
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        The hashCode of this Filter.