Package com.tangosol.util.aggregator
Class AbstractBigDecimalAggregator<T>
- java.lang.Object
-
- com.tangosol.util.Base
-
- com.tangosol.util.BitHelper
-
- com.tangosol.util.ExternalizableHelper
-
- com.tangosol.util.aggregator.AbstractAggregator<Object,Object,T,Number,BigDecimal>
-
- com.tangosol.util.aggregator.AbstractBigDecimalAggregator<T>
-
- Type Parameters:
T
- the type of the value to extract from
- All Implemented Interfaces:
ExternalizableLite
,PortableObject
,InvocableMap.EntryAggregator<Object,Object,BigDecimal>
,InvocableMap.StreamingAggregator<Object,Object,Object,BigDecimal>
,Serializable
,Cloneable
- Direct Known Subclasses:
BigDecimalAverage
,BigDecimalMax
,BigDecimalMin
,BigDecimalSum
public abstract class AbstractBigDecimalAggregator<T> extends AbstractAggregator<Object,Object,T,Number,BigDecimal>
Abstract aggregator that processesNumber
values extracted from a set of entries in a Map and returns a result in a form of aBigDecimal
value. All the extracted objects will be treated asBigDecimal
,BigInteger
or Java double values. If the set of entries is empty, a null result is returned.- Since:
- Coherence 3.2
- Author:
- gg 2006.02.13, Gunnar Hillert 2022.06.01
- 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 Modifier and Type Field Description protected int
m_count
The count of processed entries.protected BigDecimal
m_decResult
The running result value.protected boolean
m_fStripTrailingZeros
Shall trailing zeros be removed from the aggregation result?protected MathContext
m_mathContext
TheMathContext
to provide the precision.protected RoundingMode
m_roundingMode
TheRoundingMode
used for the aggregated calculation.protected Integer
m_scale
The scale used for the aggregated calculation.-
Fields inherited from class com.tangosol.util.aggregator.AbstractAggregator
m_fParallel
-
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
-
Fields inherited from class com.tangosol.util.Base
LOG_ALWAYS, LOG_CONFIG, LOG_DEBUG, LOG_ERR, LOG_INFO, LOG_MAX, LOG_MIN, LOG_QUIET, LOG_WARN, POWER_0, POWER_G, POWER_K, POWER_M, POWER_T, UNIT_D, UNIT_H, UNIT_M, UNIT_MS, UNIT_NS, UNIT_S, UNIT_US
-
Fields inherited from interface com.tangosol.util.InvocableMap.StreamingAggregator
ALLOW_INCONSISTENCIES, BY_MEMBER, BY_PARTITION, PARALLEL, PRESENT_ONLY, RETAINS_ENTRIES, SERIAL
-
-
Constructor Summary
Constructors Constructor Description AbstractBigDecimalAggregator()
Default constructor (necessary for the ExternalizableLite interface).AbstractBigDecimalAggregator(ValueExtractor<? super T,? extends Number> extractor)
Construct an AbstractBigDecimalAggregator object.AbstractBigDecimalAggregator(String sMethod)
Construct an AbstractBigDecimalAggregator object.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static BigDecimal
ensureBigDecimal(Number num)
Ensure the specified Number is a BigDecimal value or convert it into a new BigDecimal object.boolean
equals(Object o)
Compares this object with another object for equality.protected Object
finalizeResult(boolean fFinal)
Obtain the result of the aggregation.MathContext
getMathContext()
Returns the specifiedMathContext
or null.RoundingMode
getRoundingMode()
Returns theRoundingMode
that is applied to aggregation results.Integer
getScale()
Returns the specified scale.int
hashCode()
Returns a hash code value for this object.protected void
init(boolean fFinal)
Initialize the aggregation result.boolean
isStripTrailingZeros()
Shall trailing zeros be removed from the aggregation result?void
setMathContext(MathContext mathContext)
Sets the MathContext (allowing you to work with precision instead of scale).void
setRoundingMode(RoundingMode roundingMode)
Sets theRoundingMode
for the results, e.g. if scale is applied to the aggregation result.void
setScale(Integer scale)
Specifies the scale to be applied to the aggregated result.void
setStripTrailingZeros(boolean fStripTrailingZeros)
Allows you to set the property totrue
to remove trailing zeros from the aggregation result.-
Methods inherited from class com.tangosol.util.aggregator.AbstractAggregator
accumulate, accumulate, combine, ensureInitialized, finalizeResult, getPartialResult, getValueExtractor, process, processEntry, readExternal, readExternal, supply, toString, writeExternal, writeExternal
-
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, isPatchCompatible, isPatchCompatible, isResolving, isSerializable, isSerializerCompatible, isVersionCompatible, isVersionCompatible, 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, 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, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.tangosol.util.InvocableMap.StreamingAggregator
aggregate, characteristics, isAllowInconsistencies, isByMember, isByPartition, isParallel, isPresentOnly, isRetainsEntries, isSerial
-
-
-
-
Field Detail
-
m_count
protected transient int m_count
The count of processed entries.
-
m_decResult
protected transient BigDecimal m_decResult
The running result value.
-
m_scale
protected Integer m_scale
The scale used for the aggregated calculation. Is null by default, in which case the defaults of the underlyingBigDecimal
are being used.
-
m_mathContext
protected MathContext m_mathContext
TheMathContext
to provide the precision. Is null by default, in which case the defaults of the underlyingBigDecimal
are being used.
-
m_roundingMode
protected RoundingMode m_roundingMode
TheRoundingMode
used for the aggregated calculation. Is null by default, in which case the defaults of the underlyingBigDecimal
are being used.
-
m_fStripTrailingZeros
protected boolean m_fStripTrailingZeros
Shall trailing zeros be removed from the aggregation result? Defaults tofalse
.
-
-
Constructor Detail
-
AbstractBigDecimalAggregator
public AbstractBigDecimalAggregator()
Default constructor (necessary for the ExternalizableLite interface).
-
AbstractBigDecimalAggregator
public AbstractBigDecimalAggregator(ValueExtractor<? super T,? extends Number> extractor)
Construct an AbstractBigDecimalAggregator object.- Parameters:
extractor
- the extractor that provides a value in the form of any Java object that is aNumber
-
-
Method Detail
-
init
protected void init(boolean fFinal)
Initialize the aggregation result.- Specified by:
init
in classAbstractAggregator<Object,Object,T,Number,BigDecimal>
- Parameters:
fFinal
- true is passed if the aggregation process that is being initialized must produce a final aggregation result; this will only be false if a parallel approach is being used and the initial (partial) aggregation process is being initialized
-
finalizeResult
protected Object finalizeResult(boolean fFinal)
Obtain the result of the aggregation.If the fFinal parameter is true, the returned object must be the final result of the aggregation; otherwise, the returned object will be treated as a partial result that should be incorporated into the final result.
- Specified by:
finalizeResult
in classAbstractAggregator<Object,Object,T,Number,BigDecimal>
- Parameters:
fFinal
- true to indicate that the final result of the aggregation process should be returned; this will only be false if a parallel approach is being used- Returns:
- the result of the aggregation process
-
equals
public boolean equals(Object o)
Description copied from class:AbstractAggregator
Compares this object with another object for equality.- Overrides:
equals
in classAbstractAggregator<Object,Object,T,Number,BigDecimal>
- Parameters:
o
- an object reference or null- Returns:
- true iff the passed object reference is of the same class and has the same state as this object
-
hashCode
public int hashCode()
Description copied from class:AbstractAggregator
Returns a hash code value for this object.- Overrides:
hashCode
in classAbstractAggregator<Object,Object,T,Number,BigDecimal>
- Returns:
- a hash code value for this object
-
ensureBigDecimal
public static BigDecimal ensureBigDecimal(Number num)
Ensure the specified Number is a BigDecimal value or convert it into a new BigDecimal object.- Parameters:
num
- a Number object- Returns:
- a BigDecimal object that is equal to the passed in Number
-
getScale
public Integer getScale()
Returns the specified scale. Can be null.- Returns:
- the scale to return. Can be null.
-
setScale
public void setScale(Integer scale)
Specifies the scale to be applied to the aggregated result. Typically, scale is set together withsetRoundingMode(RoundingMode)
. However, if the specified scaling operation would require rounding then a ArithmeticException will be thrown. IfsetMathContext(MathContext)
is specified and the operation supports theMathContext
then thesetScale(Integer)
property is ignored.- Parameters:
scale
- the scale to set.
-
getMathContext
public MathContext getMathContext()
Returns the specifiedMathContext
or null.- Returns:
- the MathContext. Can be null.
-
setMathContext
public void setMathContext(MathContext mathContext)
Sets the MathContext (allowing you to work with precision instead of scale). If aBigDecimal
operation supports bothMathContext
or scale and both properties are specified, then theMathContext
is used and the scale is ignored.- Parameters:
mathContext
- the MathContext to set.
-
getRoundingMode
public RoundingMode getRoundingMode()
Returns theRoundingMode
that is applied to aggregation results.- Returns:
- The RoundingMode. Can be null.
-
setRoundingMode
public void setRoundingMode(RoundingMode roundingMode)
Sets theRoundingMode
for the results, e.g. if scale is applied to the aggregation result.- Parameters:
roundingMode
- the RoundingMode to set. Can be null.
-
isStripTrailingZeros
public boolean isStripTrailingZeros()
Shall trailing zeros be removed from the aggregation result?- Returns:
- true if trailing zeros are removed.
-
setStripTrailingZeros
public void setStripTrailingZeros(boolean fStripTrailingZeros)
Allows you to set the property totrue
to remove trailing zeros from the aggregation result.- Parameters:
fStripTrailingZeros
- Defaults to false if not set.
-
-