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 processesNumbervalues extracted from a set of entries in a Map and returns a result in a form of aBigDecimalvalue. All the extracted objects will be treated asBigDecimal,BigIntegeror 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 intm_countThe count of processed entries.protected BigDecimalm_decResultThe running result value.protected booleanm_fStripTrailingZerosShall trailing zeros be removed from the aggregation result?protected MathContextm_mathContextTheMathContextto provide the precision.protected RoundingModem_roundingModeTheRoundingModeused for the aggregated calculation.protected Integerm_scaleThe 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
DEFAULT_LOAD_FACTOR, 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 BigDecimalensureBigDecimal(Number num)Ensure the specified Number is a BigDecimal value or convert it into a new BigDecimal object.booleanequals(Object o)Compares this object with another object for equality.protected ObjectfinalizeResult(boolean fFinal)Obtain the result of the aggregation.MathContextgetMathContext()Returns the specifiedMathContextor null.RoundingModegetRoundingMode()Returns theRoundingModethat is applied to aggregation results.IntegergetScale()Returns the specified scale.inthashCode()Returns a hash code value for this object.protected voidinit(boolean fFinal)Initialize the aggregation result.booleanisStripTrailingZeros()Shall trailing zeros be removed from the aggregation result?voidsetMathContext(MathContext mathContext)Sets the MathContext (allowing you to work with precision instead of scale).voidsetRoundingMode(RoundingMode roundingMode)Sets theRoundingModefor the results, e.g. if scale is applied to the aggregation result.voidsetScale(Integer scale)Specifies the scale to be applied to the aggregated result.voidsetStripTrailingZeros(boolean fStripTrailingZeros)Allows you to set the property totrueto 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, newHashMap, newHashMap, newHashSet, newHashSet, 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 underlyingBigDecimalare being used.
-
m_mathContext
protected MathContext m_mathContext
TheMathContextto provide the precision. Is null by default, in which case the defaults of the underlyingBigDecimalare being used.
-
m_roundingMode
protected RoundingMode m_roundingMode
TheRoundingModeused for the aggregated calculation. Is null by default, in which case the defaults of the underlyingBigDecimalare 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:
initin 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:
finalizeResultin 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:AbstractAggregatorCompares this object with another object for equality.- Overrides:
equalsin 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:AbstractAggregatorReturns a hash code value for this object.- Overrides:
hashCodein 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 theMathContextthen thesetScale(Integer)property is ignored.- Parameters:
scale- the scale to set.
-
getMathContext
public MathContext getMathContext()
Returns the specifiedMathContextor 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 aBigDecimaloperation supports bothMathContextor scale and both properties are specified, then theMathContextis used and the scale is ignored.- Parameters:
mathContext- the MathContext to set.
-
getRoundingMode
public RoundingMode getRoundingMode()
Returns theRoundingModethat is applied to aggregation results.- Returns:
- The RoundingMode. Can be null.
-
setRoundingMode
public void setRoundingMode(RoundingMode roundingMode)
Sets theRoundingModefor 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 totrueto remove trailing zeros from the aggregation result.- Parameters:
fStripTrailingZeros- Defaults to false if not set.
-
-