Show / Hide Table of Contents

Class LikeFilter

IFilter which compares the result of a member invocation with a value for pattern match.

Inheritance
object
ExtractorFilter
ComparisonFilter
LikeFilter
Implements
IPortableObject
IIndexAwareFilter
IEntryFilter
IFilter
Inherited Members
ComparisonFilter.Value
ComparisonFilter.Equals(object)
ComparisonFilter.GetHashCode()
ComparisonFilter.ToString()
ComparisonFilter.CalculateMatchEffectiveness(IDictionary, ICollection)
ComparisonFilter.CalculateRangeEffectiveness(IDictionary, ICollection)
ComparisonFilter.CalculateIteratorEffectiveness(int)
ComparisonFilter.m_value
ExtractorFilter.ValueExtractor
ExtractorFilter.Evaluate(object)
ExtractorFilter.EvaluateEntry(ICacheEntry)
ExtractorFilter.Extract(object)
ExtractorFilter.EVAL_COST
ExtractorFilter.m_extractor
object.Equals(object, object)
object.GetType()
object.MemberwiseClone()
object.ReferenceEquals(object, object)
Namespace: Tangosol.Util.Filter
Assembly: Coherence.dll
Syntax
public class LikeFilter : ComparisonFilter, IPortableObject, IIndexAwareFilter, IEntryFilter, IFilter
Remarks

A pattern can include regular characters and wildcard characters '_' and '%'.

During pattern matching, regular characters must exactly match the characters in an evaluated string. Wildcard character '_' (underscore) can be matched with any single character, and wildcard character '%' can be matched with any string fragment of zero or more characters.

Constructors

LikeFilter()

Default constructor.

Declaration
public LikeFilter()

LikeFilter(string, string)

Construct a LikeFilter for pattern match.

Declaration
public LikeFilter(string member, string pattern)
Parameters
Type Name Description
string member

The name of the member to invoke via reflection.

string pattern

The string pattern to compare the result with.

LikeFilter(string, string, bool)

Construct a LikeFilter for pattern match.

Declaration
public LikeFilter(string member, string pattern, bool ignoreCase)
Parameters
Type Name Description
string member

The name of the member to invoke via reflection.

string pattern

The string pattern to compare the result with.

bool ignoreCase

true to be case-insensitive.

LikeFilter(string, string, char, bool)

Construct a LikeFilter for pattern match.

Declaration
public LikeFilter(string member, string pattern, char escape, bool ignoreCase)
Parameters
Type Name Description
string member

The name of the member to invoke via reflection.

string pattern

The string pattern to compare the result with.

char escape

The escape character for escaping '%' and '_'.

bool ignoreCase

true to be case-insensitive.

LikeFilter(IValueExtractor, string, char, bool)

Construct a LikeFilter for pattern match.

Declaration
public LikeFilter(IValueExtractor extractor, string pattern, char escape, bool ignoreCase)
Parameters
Type Name Description
IValueExtractor extractor

The IValueExtractor to use by this filter.

string pattern

The string pattern to compare the result with.

char escape

The escape character for escaping '%' and '_'.

bool ignoreCase

true to be case-insensitive.

Properties

EscapeChar

Obtain the escape character that is used for escaping '%' and '_' in the pattern or zero if there is no escape.

Declaration
public virtual char EscapeChar { get; }
Property Value
Type Description
char

The escape character.

IgnoreCase

Check whether or not the filter is case incensitive.

Declaration
public virtual bool IgnoreCase { get; }
Property Value
Type Description
bool

true if case insensitivity is specifically enabled.

IsIgnoreCase

Check whether or not the filter is case incensitive.

Declaration
[Obsolete("As of Coherence 3.4 this property is replaced with IgnoreCase")]
public virtual bool IsIgnoreCase { get; }
Property Value
Type Description
bool

true if case insensitivity is specifically enabled.

Pattern

Obtain the filter's pattern string.

Declaration
public virtual string Pattern { get; }
Property Value
Type Description
string

The pattern string.

Methods

ApplyIndex(IDictionary, ICollection)

Filter remaining keys using an IDictionary of available indexes.

Declaration
public IFilter ApplyIndex(IDictionary indexes, ICollection keys)
Parameters
Type Name Description
IDictionary indexes

The available ICacheIndex objects keyed by the related IValueExtractor; read-only.

ICollection keys

The mutable set of keys that remain to be filtered.

Returns
Type Description
IFilter

An IFilter object that can be used to process the remaining keys, or null if no additional filter processing is necessary.

Remarks

The filter is responsible for removing all keys from the passed set of keys that the applicable indexes can prove should be filtered. If the filter does not fully evaluate the remaining keys using just the index information, it must return a filter (which may be an IEntryFilter) that can complete the task using an iterating implementation. If, on the other hand, the filter does fully evaluate the remaining keys using just the index information, then it should return null to indicate that no further filtering is necessary.

BuildPlan()

Build a plan for processing the LIKE functionality.

Declaration
protected virtual void BuildPlan()

CalculateEffectiveness(IDictionary, ICollection)

Given an IDictionary of available indexes, determine if this IIndexAwareFilter can use any of the indexes to assist in its processing, and if so, determine how effective the use of that index would be.

Declaration
public int CalculateEffectiveness(IDictionary indexes, ICollection keys)
Parameters
Type Name Description
IDictionary indexes

The available ICacheIndex objects keyed by the related IValueExtractor; read-only.

ICollection keys

The set of keys that will be filtered; read-only.

Returns
Type Description
int

An effectiveness estimate of how well this filter can use the specified indexes to filter the specified keys.

Remarks

The returned value is an effectiveness estimate of how well this filter can use the specified indexes to filter the specified keys. An operation that requires no more than a single access to the index content (i.e. Equals, NotEquals) has an effectiveness of one. Evaluation of a single entry is assumed to have an effectiveness that depends on the index implementation and is usually measured as a constant number of the single operations. This number is referred to as evaluation cost.

If the effectiveness of a filter evaluates to a number larger than the keys.size() then a user could avoid using the index and iterate through the keys calling Evaluate rather than ApplyIndex.

EvaluateExtracted(object)

Evaluate the specified extracted value.

Declaration
protected override bool EvaluateExtracted(object extracted)
Parameters
Type Name Description
object extracted

An extracted value to evaluate.

Returns
Type Description
bool

true if the test passes, false otherwise.

Overrides
ExtractorFilter.EvaluateExtracted(object)

IsMatch(string)

Check the passed string value to see if it matches the pattern that this filter was constructed with.

Declaration
protected virtual bool IsMatch(string value)
Parameters
Type Name Description
string value

The string value to match against this filter's pattern.

Returns
Type Description
bool

true if the passed string value is LIKE this filter's pattern.

ReadExternal(IPofReader)

Restore the contents of a user type instance by reading its state using the specified IPofReader object.

Declaration
public override void ReadExternal(IPofReader reader)
Parameters
Type Name Description
IPofReader reader

The IPofReader from which to read the object's state.

Overrides
ComparisonFilter.ReadExternal(IPofReader)
Exceptions
Type Condition
IOException

If an I/O error occurs.

WriteExternal(IPofWriter)

Save the contents of a POF user type instance by writing its state using the specified IPofWriter object.

Declaration
public override void WriteExternal(IPofWriter writer)
Parameters
Type Name Description
IPofWriter writer

The IPofWriter to which to write the object's state.

Overrides
ComparisonFilter.WriteExternal(IPofWriter)
Exceptions
Type Condition
IOException

If an I/O error occurs.

Implements

IPortableObject
IIndexAwareFilter
IEntryFilter
IFilter
In this article
Back to top Copyright © 2000, 2024, Oracle and/or its affiliates.