Class AbstractQueryRecorderFilter<T>
- java.lang.Object
-
- com.tangosol.util.Base
-
- com.tangosol.util.BitHelper
-
- com.tangosol.util.ExternalizableHelper
-
- com.tangosol.util.filter.AbstractQueryRecorderFilter<T>
-
- Type Parameters:
T
- the type of the input argument to the filter
- All Implemented Interfaces:
Filter<T>
,QueryRecorderFilter<T>
,Serializable
- Direct Known Subclasses:
AlwaysFilter
,ExtractorFilter
,InKeySetFilter
,LimitFilter
,NeverFilter
,NotFilter
,WrapperQueryRecorderFilter
public abstract class AbstractQueryRecorderFilter<T> extends ExternalizableHelper implements QueryRecorderFilter<T>
Abstract base class implementation ofQueryRecorderFilter
.- Since:
- Coherence 3.7.1
- Author:
- tb 2011.05.26
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.tangosol.util.ExternalizableHelper
ExternalizableHelper.DecoratedMultiBufferReadBuffer, ExternalizableHelper.DefaultObjectStreamFactory, ExternalizableHelper.FormatAwareCompressor, ExternalizableHelper.IntDecoratedObject, ExternalizableHelper.Shielded, ExternalizableHelper.ShieldedDataOutputStream, ExternalizableHelper.ShieldedInputStream, ExternalizableHelper.ShieldedObjectOutputStream, ExternalizableHelper.ShieldedOutputStream, ExternalizableHelper.SimpleXmlBeanClassCache, ExternalizableHelper.Stats, ExternalizableHelper.XmlBeanClassCache
-
Nested classes/interfaces inherited from class com.tangosol.util.Base
Base.LoggingWriter
-
-
Field Summary
-
Fields inherited from class com.tangosol.util.ExternalizableHelper
BINARY_SIZE, CHUNK_SIZE, CHUNK_THRESHOLD, CONVERTER_FROM_BINARY, CONVERTER_STRIP_INTDECO, CONVERTER_TO_BINARY, DECO_APP_1, DECO_APP_2, DECO_APP_3, DECO_BACKUP, DECO_CUSTOM, DECO_EXPIRY, DECO_ID_MAX, DECO_ID_MIN, DECO_JCACHE, DECO_JCACHE_SYNTHETIC, DECO_MEMCACHED, DECO_PUSHREP, DECO_QUEUE_METADATA, DECO_RSVD_1, DECO_STORE, DECO_TX, DECO_VALUE, DECO_WLS, EMPTY_BINARY_ARRAY, FMT_B_ARRAY, FMT_BIN_DECO, FMT_BIN_EXT_DECO, FMT_BINARY, FMT_BOOLEAN, FMT_BYTE, FMT_DECIMAL, FMT_DOUBLE, FMT_EXT, FMT_FLOAT, FMT_IDO, FMT_INT, FMT_INTEGER, FMT_LONG, FMT_NONE, FMT_NULL, FMT_OBJ_EXT, FMT_OBJ_SER, FMT_OPT, FMT_OPT_DOUBLE, FMT_OPT_INT, FMT_OPT_LONG, FMT_SHORT, FMT_STRING, FMT_UNKNOWN, FMT_XML_BEAN, FMT_XML_SER, FORCE_RESOLVING_STREAMS, LAMBDA_SERIALIZATION, MAX_DECO_HEADER_BYTES, PACKED_INT_SIZE, PACKED_LONG_SIZE, PROPERTY_CONFIG, s_streamfactory, TRINT_DOMAIN_SPAN, TRINT_MAX_VALUE, TRINT_MAX_VARIANCE, USE_POF_STREAMS, USE_XMLBEAN_CLASS_CACHE, XMLBEAN_CLASS_CACHE
-
-
Constructor Summary
Constructors Constructor Description AbstractQueryRecorderFilter()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected static <T> void
explain(Filter<T> filter, Map mapIndexes, Set setKeys, QueryRecord.PartialResult.ExplainStep step)
Record an estimated cost of query execution for a given filter.protected static <T> void
explain(Filter<T> filter, Map mapIndexes, Set setKeys, QueryRecord.PartialResult.ExplainStep step, ValueExtractor extractor)
Record an estimated cost of query execution for a given filter.void
explain(QueryContext ctx, QueryRecord.PartialResult.ExplainStep step, Set setKeys)
Record the projected query execution cost by this filter.protected static <T> boolean
trace(Filter<T> filter, Map.Entry entry, QueryRecord.PartialResult.TraceStep step)
Record the actual cost of query execution for a given filter.protected static <T> Filter<T>
trace(Filter<T> filter, Map mapIndexes, Set setKeys, QueryRecord.PartialResult.TraceStep step)
Record the actual cost of applying the specified filter to the specified keySet.protected static <T> Filter<T>
trace(Filter<T> filter, Map mapIndexes, Set setKeys, QueryRecord.PartialResult.TraceStep step, ValueExtractor extractor)
Record the actual cost of applying the specified filter to the specified keySet.boolean
trace(QueryContext ctx, QueryRecord.PartialResult.TraceStep step, Map.Entry entry)
Evaluate the specified entry against this filter and record the evaluation cost on the given step of theQueryRecord
.Filter
trace(QueryContext ctx, QueryRecord.PartialResult.TraceStep step, Set setKeys)
Filter the given keys using available indexes and record the cost of execution on the given step of theQueryRecord
.-
Methods inherited from class com.tangosol.util.ExternalizableHelper
asBinary, calculatePackedLength, calculatePackedLength, checkObjectInputFilter, checkObjectInputFilter, checkObjectInputFilter, convertUTF, decodeExpiry, decorate, decorate, decorate, decorate, decorate, decorateBinary, encodeExpiry, ensureSerializer, extractIntDecoration, fromBinary, fromBinary, fromBinary, fromBinary, fromBinary, fromBinary, fromByteArray, fromByteArray, getClass, getConfigSerialFilter, getConfigSerialFilterFactory, getDecoration, getDecoration, getDecorations, getDeltaCompressor, getInputStream, getNewObjectInput, getObjectInput, getObjectInputFilter, getObjectOutput, getObjectStreamFactory, getOutputStream, getShieldedOutputStream, getStreamFormat, getUndecorated, getUndecorated, isDecorated, isDecorated, isIntDecorated, isIntDecorated, isResolving, isSerializable, isSerializerCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, isVersionCompatible, loadClass, loadResource, main, makeTrint, readBigDecimal, readBigInteger, readBooleanArray, readBooleanArray, readByteArray, readCharArray, readCharArray, readCollection, readDate, readDoubleArray, readDoubleArray, readExternalizableLite, readExternalizableLite, readFloatArray, readFloatArray, readInt, readInt, readIntArray, readIntArray, readIntArray2d, readLargeBooleanArray, readLargeByteArray, readLargeCharArray, readLargeDoubleArray, readLargeFloatArray, readLargeIntArray, readLargeLongArray, readLargeObjectArray, readLargeStringArray, readLong, readLong, readLongArray, readLongArray, readMap, readMap, readObject, readObject, readObjectArray, readObjectArray, readSafeUTF, readSafeUTF, readSerializable, readSerializable, readStringArray, readStringArray, readTime, readTimestamp, readTrint, readUnsignedTrint, readUTF, readXmlBean, readXmlSerializable, readXmlSerializable, realize, removeIntDecoration, removeIntDecoration, replace, reportIncompatibleSerializers, setObjectStreamFactory, toBinary, toBinary, toBinary, toByteArray, toByteArray, toByteArray, toLiteBinary, toLong, undecorate, undecorate, validateBufferSize, validateLoadArray, validateLoadClass, writeBigDecimal, writeBigInteger, writeBooleanArray, writeByteArray, writeCollection, writeDate, writeDoubleArray, writeExternalizableLite, writeFloatArray, writeInt, writeInt, writeIntArray2d, writeLong, writeLong, writeMap, writeObject, writeSafeUTF, writeSafeUTF, writeSerializable, writeStringArray, writeTime, writeTimestamp, writeTrint, writeTrint, writeUTF, writeXmlBean, writeXmlSerializable
-
Methods inherited from class com.tangosol.util.BitHelper
countBits, countBits, countBits, indexOfLSB, indexOfLSB, indexOfLSB, indexOfMSB, indexOfMSB, indexOfMSB, rotateLeft, rotateLeft, rotateLeft, rotateRight, rotateRight, rotateRight, toBitString, toBitString, toBitString, toBytes, toBytes, toBytes, toBytes, toInt, toInt, toLong
-
Methods inherited from class com.tangosol.util.Base
azzert, azzert, azzert, azzertFailed, breakLines, breakLines, capitalize, checkNotEmpty, checkNotNull, checkRange, computeSafeWaitTime, decimalValue, dup, dup, ensureBigDecimal, ensureClassLoader, ensureRuntimeException, ensureRuntimeException, equals, equalsDeep, err, err, err, err, err, escape, formatDateTime, getCallerStackFrame, getCommonMonitor, getCommonMonitor, getCommonMonitor, getContextClassLoader, getContextClassLoader, getDeepMessage, getErr, getLastSafeTimeMillis, getLog, getMaxDecDigits, getMaxHexDigits, getOriginalException, getOut, getProcessRandom, getRandom, getRandomBinary, getRandomBinary, getRandomString, getSafeTimeMillis, getStackFrame, getStackFrames, getStackTrace, getStackTrace, getStackTrace, getThreadFactory, getTimeZone, getUpTimeMillis, hashCode, hexValue, indentString, indentString, isDecimal, isHex, isLogEcho, isOctal, log, log, log, log, log, makeInteger, makeLong, makeThread, mergeArray, mergeBooleanArray, mergeByteArray, mergeCharArray, mergeDoubleArray, mergeFloatArray, mergeIntArray, mergeLongArray, mod, mod, octalValue, out, out, out, out, out, pad, parseBandwidth, parseBandwidth, parseDelimitedString, parseHex, parseHex, parseMemorySize, parseMemorySize, parsePercentage, parseTime, parseTime, parseTimeNanos, parseTimeNanos, printStackTrace, randomize, randomize, randomize, randomize, read, read, read, read, read, read, read, replace, setErr, setLog, setLogEcho, setOut, sleep, toBandwidthString, toBandwidthString, toCharEscape, toCrc, toCrc, toCrc, toCrc, toCrc, toDecString, toDelimitedString, toDelimitedString, toDelimitedString, toDelimitedString, toHex, toHex, toHexDump, toHexEscape, toHexEscape, toHexEscape, toHexEscape, toHexString, toMemorySizeString, toMemorySizeString, toQuotedCharEscape, toQuotedStringEscape, toSqlString, toString, toString, toStringEscape, toUnicodeEscape, trace, trace, trace, trace, trace, trace, trace, trace, trace, truncateString, truncateString, wait
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.tangosol.util.Filter
and, asLimitFilter, associatedWith, evaluate, forKeys, forPartitions, or, xor
-
-
-
-
Method Detail
-
explain
public void explain(QueryContext ctx, QueryRecord.PartialResult.ExplainStep step, Set setKeys)
Record the projected query execution cost by this filter.This method is expected to record the order of execution and estimated cost of applying corresponding indexes in the given
step
without actually applying any indexes or evaluating entries.- Specified by:
explain
in interfaceQueryRecorderFilter<T>
- Parameters:
ctx
- the query contextstep
- the step used to record the estimated execution costsetKeys
- the set of keys that would be filtered
-
trace
public Filter trace(QueryContext ctx, QueryRecord.PartialResult.TraceStep step, Set setKeys)
Filter the given keys using available indexes and record the cost of execution on the given step of theQueryRecord
.This method should record the size of the given key set before and after applying corresponding indexes using
QueryRecord.PartialResult.RecordableStep.recordPreFilterKeys(int)
andQueryRecord.PartialResult.TraceStep.recordPostFilterKeys(int)
as well as the corresponding execution time using theQueryRecord.PartialResult.TraceStep.recordDuration(long)
method.This method is only called if the filter is an
IndexAwareFilter
and its implementations should explicitly callapplyIndex()
to actually perform the query. Additionally, this method should return the filter object (if any) returned by the applyIndex() call.- Specified by:
trace
in interfaceQueryRecorderFilter<T>
- Parameters:
ctx
- the query contextstep
- the step used to record the execution costsetKeys
- the mutable set of keys that remain to be filtered- Returns:
- the filter returned from
IndexAwareFilter.applyIndex(Map, Set)
-
trace
public boolean trace(QueryContext ctx, QueryRecord.PartialResult.TraceStep step, Map.Entry entry)
Evaluate the specified entry against this filter and record the evaluation cost on the given step of theQueryRecord
.This method should record the corresponding latencies using
QueryRecord.PartialResult.TraceStep.recordDuration(long)
.Implementations are responsible for explicitly calling
evaluateEntry()
method to perform the actual entry evaluation. Additionally, this method should return the result of the evaluateEntry call.- Specified by:
trace
in interfaceQueryRecorderFilter<T>
- Parameters:
ctx
- the contextstep
- the step used to record the evaluation costentry
- the entry to evaluate- Returns:
- the result returned from
EntryFilter.evaluateEntry(Map.Entry)
-
explain
protected static <T> void explain(Filter<T> filter, Map mapIndexes, Set setKeys, QueryRecord.PartialResult.ExplainStep step)
Record an estimated cost of query execution for a given filter.- Type Parameters:
T
- the type of the input argument to the filter- Parameters:
filter
- the filtermapIndexes
- a read-only map of available MapIndex objects, keyed by the associated ValueExtractorsetKeys
- the mutable set of keys that remain to be filteredstep
- the step used to record the execution cost
-
explain
protected static <T> void explain(Filter<T> filter, Map mapIndexes, Set setKeys, QueryRecord.PartialResult.ExplainStep step, ValueExtractor extractor)
Record an estimated cost of query execution for a given filter.- Type Parameters:
T
- the type of the input argument to the filter- Parameters:
filter
- the filtermapIndexes
- a read-only map of available MapIndex objects, keyed by the associated ValueExtractorsetKeys
- the mutable set of keys that remain to be filteredstep
- the step used to record the execution costextractor
- an optional ValueExtractor used by the query
-
trace
protected static <T> Filter<T> trace(Filter<T> filter, Map mapIndexes, Set setKeys, QueryRecord.PartialResult.TraceStep step)
Record the actual cost of applying the specified filter to the specified keySet.- Type Parameters:
T
- the type of the input argument to the filter- Parameters:
filter
- the filtermapIndexes
- a read-only map of available MapIndex objects, keyed by the associated ValueExtractorsetKeys
- the mutable set of keys that remain to be filteredstep
- the step used to record the execution cost- Returns:
- a
Filter
object (which may be anEntryFilter
) that can be used to process the remaining keys, or null if no additional filter processing is necessary
-
trace
protected static <T> Filter<T> trace(Filter<T> filter, Map mapIndexes, Set setKeys, QueryRecord.PartialResult.TraceStep step, ValueExtractor extractor)
Record the actual cost of applying the specified filter to the specified keySet.- Type Parameters:
T
- the type of the input argument to the filter- Parameters:
filter
- the filtermapIndexes
- a read-only map of available MapIndex objects, keyed by the associated ValueExtractorsetKeys
- the mutable set of keys that remain to be filteredstep
- the step used to record the execution costextractor
- an optional ValueExtractor used by the query- Returns:
- a
Filter
object (which may be anEntryFilter
) that can be used to process the remaining keys, or null if no additional filter processing is necessary
-
trace
protected static <T> boolean trace(Filter<T> filter, Map.Entry entry, QueryRecord.PartialResult.TraceStep step)
Record the actual cost of query execution for a given filter.- Type Parameters:
T
- the type of the input argument to the filter- Parameters:
filter
- the filterentry
- the entry to be evaluatedstep
- the step used to record the execution cost- Returns:
- true if the entry passes the filter, false otherwise
-
-