Interface Filter


@ProviderType public interface Filter
An RFC 1960-based Filter.

Filters can be created by calling BundleContext.createFilter(String) or FrameworkUtil.createFilter(String) with a filter string.

A Filter can be used numerous times to determine if the match argument matches the filter string that was used to create the Filter.

Some examples of LDAP filters are:

  "(cn=Babs Jensen)"
  "(!(cn=Tim Howes))"
  "(&(" + Constants.OBJECTCLASS + "=Person)(|(sn=Jensen)(cn=Babs J*)))"
  "(o=univ*of*mich*)"
 
Since:
1.1
See Also:
  • "Core Specification, Filters, for a description of the filter string syntax."
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Compares this Filter to another Filter.
    int
    Returns the hashCode for this Filter.
    boolean
    match(Dictionary<String,?> dictionary)
    Filter using a Dictionary with case insensitive key lookup.
    boolean
    match(ServiceReference<?> reference)
    Filter using a service's properties.
    boolean
    matchCase(Dictionary<String,?> dictionary)
    Filter using a Dictionary.
    boolean
    matches(Map<String,?> map)
    Filter using a Map.
    Returns this Filter's filter string.
  • Method Details

    • match

      boolean match(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 looked up in a case insensitive manner.

      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

      boolean match(Dictionary<String,?> dictionary)
      Filter using a Dictionary with case insensitive key lookup. This Filter is executed using the specified Dictionary's keys and values. The keys are looked up in a case insensitive manner.
      Parameters:
      dictionary - The Dictionary whose key/value pairs are used in the match.
      Returns:
      true if the Dictionary's values match this filter; false otherwise.
      Throws:
      IllegalArgumentException - If dictionary contains case variants of the same key name.
    • toString

      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.

      Overrides:
      toString in class Object
      Returns:
      This Filter's filter string.
    • equals

      boolean equals(Object obj)
      Compares this Filter to another Filter.

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

      Overrides:
      equals in class 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

      int hashCode()
      Returns the hashCode for this Filter.

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

      Overrides:
      hashCode in class Object
      Returns:
      The hashCode of this Filter.
    • matchCase

      boolean matchCase(Dictionary<String,?> dictionary)
      Filter using a Dictionary. This Filter is executed using the specified Dictionary's keys and values. The keys are looked up in a normal manner respecting case.
      Parameters:
      dictionary - The Dictionary whose key/value pairs are used in the match.
      Returns:
      true if the Dictionary's values match this filter; false otherwise.
      Since:
      1.3
    • matches

      boolean matches(Map<String,?> map)
      Filter using a Map. This Filter is executed using the specified Map's keys and values. The keys are looked up in a normal manner respecting case.
      Parameters:
      map - The Map whose key/value pairs are used in the match. Maps with null key or values are not supported. A null value is considered not present to the filter.
      Returns:
      true if the Map's values match this filter; false otherwise.
      Since:
      1.6