org.apache.felix.utils.filter
Class FilterImpl

java.lang.Object
  extended by org.apache.felix.utils.filter.FilterImpl
All Implemented Interfaces:
org.osgi.framework.Filter

public class FilterImpl
extends 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
 boolean equals(Object obj)
          Compares this Filter to another Filter.
 int hashCode()
          Returns the hashCode for this Filter.
 boolean match(Dictionary dictionary)
          Filter using a Dictionary.
 boolean match(org.osgi.framework.ServiceReference reference)
          Filter using a service's properties.
 boolean matchCase(Dictionary dictionary)
          Filter with case sensitivity using a Dictionary.
 boolean matchCase(Map map)
          Filter using a Map.
static FilterImpl newInstance(String filterString)
          Constructs a FilterImpl object.
static FilterImpl newInstance(String filterString, boolean ignoreCase)
           
 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(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.
Throws:
org.osgi.framework.InvalidSyntaxException - If the filter parameter contains an invalid filter string that cannot be parsed.

newInstance

public static FilterImpl newInstance(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(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:
IllegalArgumentException - If dictionary contains case variants of the same key name.

matchCase

public boolean matchCase(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(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:
IllegalArgumentException - If map contains case variants of the same key name.

toString

public 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 Object
Returns:
This Filter's filter string.

equals

public boolean equals(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 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 Object
Returns:
The hashCode of this Filter.


Copyright © 2006-2011 Apache Software Foundation. All Rights Reserved.