Show / Hide Table of Contents

Class InKeySetFilter

IFilter that limits the underlying filter evaluation only to the specified collection of keys.

Inheritance
object
InKeySetFilter
Implements
IIndexAwareFilter
IEntryFilter
IFilter
IPortableObject
Inherited Members
object.Equals(object)
object.Equals(object, object)
object.GetHashCode()
object.GetType()
object.MemberwiseClone()
object.ReferenceEquals(object, object)
Namespace: Tangosol.Util.Filter
Assembly: Coherence.dll
Syntax
public class InKeySetFilter : IIndexAwareFilter, IEntryFilter, IFilter, IPortableObject

Constructors

InKeySetFilter()

Default constructor.

Declaration
public InKeySetFilter()

InKeySetFilter(IFilter, ICollection)

Construct an InKeySetFilter.

Declaration
public InKeySetFilter(IFilter filter, ICollection keys)
Parameters
Type Name Description
IFilter filter

The underlying filter.

ICollection keys

The collection of keys to limit the filter evaluation to.

Properties

Filter

Obtain the underying IFilter.

Declaration
public virtual IFilter Filter { get; }
Property Value
Type Description
IFilter

The underlying filter.

Keys

Obtain the underlying collection of keys.

Declaration
public virtual ICollection Keys { get; }
Property Value
Type Description
ICollection

The underlying key set.

SyncRoot

Gets an object that can be used to synchronize access to the InKeySetFilter.

Declaration
public virtual object SyncRoot { get; }
Property Value
Type Description
object

An object that can be used to synchronize access to the InKeySetFilter.

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.

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.

EnsureConverted(IConverter)

Ensure that the underlying keys are converted using the specified converter.

Declaration
public virtual void EnsureConverted(IConverter converter)
Parameters
Type Name Description
IConverter converter

The Converter to use to convert the keys.

Evaluate(object)

Apply the test to the object.

Declaration
public virtual bool Evaluate(object o)
Parameters
Type Name Description
object o

An object to which the test is applied.

Returns
Type Description
bool

true if the test passes, false otherwise.

EvaluateEntry(ICacheEntry)

Apply the test to an ICacheEntry.

Declaration
public virtual bool EvaluateEntry(ICacheEntry entry)
Parameters
Type Name Description
ICacheEntry entry

The ICacheEntry to evaluate; never null.

Returns
Type Description
bool

true if the test passes, false otherwise.

ReadExternal(IPofReader)

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

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

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

Exceptions
Type Condition
IOException

If an I/O error occurs.

ToString()

Return a human-readable description for this InKeySetFilter.

Declaration
public override string ToString()
Returns
Type Description
string

A string description of the InKeySetFilter.

Overrides
object.ToString()

WriteExternal(IPofWriter)

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

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

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

Exceptions
Type Condition
IOException

If an I/O error occurs.

Implements

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