Class LimitFilter
IFilter which truncates the results of another filter.
Inherited Members
Namespace: Tangosol.Util.Filter
Assembly: Coherence.dll
Syntax
public class LimitFilter : IIndexAwareFilter, IEntryFilter, IFilter, IPortableObject
Remarks
This filter is a mutable object that is modified by the query processor. Clients are supposed to hold a reference to this filter and repetitively pass it to query methods after setting a desired page context.
Constructors
LimitFilter()
Default constructor.
Declaration
public LimitFilter()
LimitFilter(IFilter, int)
Construct a limit filter.
Declaration
public LimitFilter(IFilter filter, int pageSize)
Parameters
| Type | Name | Description |
|---|---|---|
| IFilter | filter | The filter whose results this filter truncates. |
| int | pageSize | Page size. |
Properties
BottomAnchor
Gets or sets the bottom anchor object, which is the last value object on the current page.
Declaration
public virtual object BottomAnchor { get; set; }
Property Value
| Type | Description |
|---|---|
| object | Bottom anchor object. |
Remarks
This method is intended to be used only by query processors. Clients should not modify the content of this property.
Comparer
Gets or sets the IComparer used to partition the entry values into pages.
Declaration
public virtual IComparer Comparer { get; set; }
Property Value
| Type | Description |
|---|---|
| IComparer | The IComparer object. |
Remarks
This method is intended to be used only by query processors. Clients should not modify the content of this property.
Cookie
Gets or sets the cookie object.
Declaration
public virtual object Cookie { get; set; }
Property Value
| Type | Description |
|---|---|
| object | Cookie object. |
Remarks
This method is intended to be used only by query processors. Clients should not modify the content of this property.
Filter
Gets the IFilter whose results are truncated by this filter.
Declaration
public virtual IFilter Filter { get; }
Property Value
| Type | Description |
|---|---|
| IFilter | The filter whose results are truncated by this filter. |
Page
Gets or sets current page number (zero-based).
Declaration
public virtual int Page { get; set; }
Property Value
| Type | Description |
|---|---|
| int | The current page number. |
PageSize
Gets or sets the page size (expressed as a number of entries per page).
Declaration
public virtual int PageSize { get; set; }
Property Value
| Type | Description |
|---|---|
| int | The page size. |
TopAnchor
Gets or sets the top anchor object, which is the last value object on a previous page.
Declaration
public virtual object TopAnchor { get; set; }
Property Value
| Type | Description |
|---|---|
| object | Top anchor object. |
Remarks
This method is intended to be used only by query processors. Clients should not modify the content of this property.
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 |
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.
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 |
Returns
| Type | Description |
|---|---|
| bool | true if the test passes, false otherwise. |
ExtractPage(ICollection)
Extract a subset of the specified set to fit the filter's parameters (i.e. page size and page number).
Declaration
public virtual ICollection ExtractPage(ICollection entries)
Parameters
| Type | Name | Description |
|---|---|---|
| ICollection | entries | An original set of entries. |
Returns
| Type | Description |
|---|---|
| ICollection | A set of entries extracted accordingly to the filter parameters. |
Remarks
If this filter has a comparator, the specified ICollection is presumed to be sorted accordingly.
The returned set is guaranteed to iterate exactly in the same order as the original set.ExtractPage(IEnumerator)
Extract a subset of the specified iterator to fit the filter's parameters (i.e. page size and page number).
Declaration
public virtual object[] ExtractPage(IEnumerator iter)
Parameters
| Type | Name | Description |
|---|---|---|
| IEnumerator | iter | An original entry iterator. |
Returns
| Type | Description |
|---|---|
| object[] | An array of entries extracted accordingly to the filter parameters |
Remarks
The returned array is guaranteed to iterate exactly in the same order as the original iterator.
ExtractPage(object[])
Extract a subset of the specified array to fit the filter's parameters (i.e. page size and page number).
Declaration
public virtual object[] ExtractPage(object[] entries)
Parameters
| Type | Name | Description |
|---|---|---|
| object[] | entries | An original array of entries. |
Returns
| Type | Description |
|---|---|
| object[] | An array of entries extracted accordingly to the filter parameters. |
Remarks
If this filter has a comparator, the specified array is presumed to be sorted accordingly.
The returned array is guaranteed to iterate exactly in the same order as the original array.NextPage()
Switch to the next page.
Declaration
public virtual void NextPage()
PreviousPage()
Switch to the previous page.
Declaration
public virtual void PreviousPage()
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 LimitFilter.
Declaration
public override string ToString()
Returns
| Type | Description |
|---|---|
| string | A string description of the LimitFilter. |
Overrides
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. |