Class WritingPofHandler
- java.lang.Object
-
- com.tangosol.util.Base
-
- com.tangosol.io.pof.PofHelper
-
- com.tangosol.io.pof.WritingPofHandler
-
- All Implemented Interfaces:
PofConstants
,PofHandler
public class WritingPofHandler extends PofHelper implements PofHandler
An implementation of PofHandler that writes a POF stream to a WriteBuffer using a BufferOutput object.- Since:
- Coherence 3.2
- Author:
- cp 2006.07.11
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
WritingPofHandler.Complex
A Complex object represents the current complex data structure in the POF stream.static class
WritingPofHandler.ComplexMap
A ComplexMap object represents a map data structure (with uniform keys or with uniform keys and values) in the POF stream.-
Nested classes/interfaces inherited from class com.tangosol.io.pof.PofHelper
PofHelper.ReadableEntrySetMap, PofHelper.WriteableEntrySetMap
-
Nested classes/interfaces inherited from class com.tangosol.util.Base
Base.LoggingWriter
-
-
Field Summary
-
Fields inherited from class com.tangosol.io.pof.PofHelper
BIGDECIMAL_ZERO, BIGINTEGER_MAX_LONG, BIGINTEGER_MIN_LONG, BINARY_EMPTY, BOOLEAN_ARRAY_EMPTY, BYTE_ARRAY_EMPTY, CHAR_ARRAY_EMPTY, COLLECTION_EMPTY, DOUBLE_ARRAY_EMPTY, FLOAT_ARRAY_EMPTY, INT_ARRAY_EMPTY, LONG_ARRAY_EMPTY, OBJECT_ARRAY_EMPTY, SHORT_ARRAY_EMPTY
-
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.io.pof.PofConstants
J_BIG_DECIMAL, J_BIG_INTEGER, J_BINARY, J_BOOLEAN, J_BOOLEAN_ARRAY, J_BYTE, J_BYTE_ARRAY, J_CHAR_ARRAY, J_CHARACTER, J_COLLECTION, J_DATE, J_DATETIME, J_DOUBLE, J_DOUBLE_ARRAY, J_FLOAT, J_FLOAT_ARRAY, J_INT_ARRAY, J_INTEGER, J_LOCAL_DATE, J_LOCAL_DATETIME, J_LOCAL_TIME, J_LONG, J_LONG_ARRAY, J_MAP, J_NULL, J_OBJECT_ARRAY, J_OFFSET_DATETIME, J_OFFSET_TIME, J_QUAD, J_RAW_DATE, J_RAW_DATETIME, J_RAW_DAY_TIME_INTERVAL, J_RAW_TIME, J_RAW_TIME_INTERVAL, J_RAW_YEAR_MONTH_INTERVAL, J_SHORT, J_SHORT_ARRAY, J_SPARSE_ARRAY, J_STRING, J_TIME, J_TIMESTAMP, J_USER_TYPE, J_ZONED_DATETIME, MAX_DECIMAL128_SCALE, MAX_DECIMAL128_UNSCALED, MAX_DECIMAL32_SCALE, MAX_DECIMAL32_UNSCALED, MAX_DECIMAL64_SCALE, MAX_DECIMAL64_UNSCALED, MIN_DECIMAL128_SCALE, MIN_DECIMAL32_SCALE, MIN_DECIMAL64_SCALE, T_ARRAY, T_BOOLEAN, T_CHAR, T_CHAR_STRING, T_COLLECTION, T_DATE, T_DATETIME, T_DAY_TIME_INTERVAL, T_DECIMAL128, T_DECIMAL32, T_DECIMAL64, T_FLOAT128, T_FLOAT32, T_FLOAT64, T_IDENTITY, T_INT128, T_INT16, T_INT32, T_INT64, T_MAP, T_OCTET, T_OCTET_STRING, T_REFERENCE, T_SPARSE_ARRAY, T_TIME, T_TIME_INTERVAL, T_UNIFORM_ARRAY, T_UNIFORM_COLLECTION, T_UNIFORM_KEYS_MAP, T_UNIFORM_MAP, T_UNIFORM_SPARSE_ARRAY, T_UNKNOWN, T_YEAR_MONTH_INTERVAL, V_BOOLEAN_FALSE, V_BOOLEAN_TRUE, V_COLLECTION_EMPTY, V_FP_NAN, V_FP_NEG_INFINITY, V_FP_POS_INFINITY, V_INT_0, V_INT_1, V_INT_10, V_INT_11, V_INT_12, V_INT_13, V_INT_14, V_INT_15, V_INT_16, V_INT_17, V_INT_18, V_INT_19, V_INT_2, V_INT_20, V_INT_21, V_INT_22, V_INT_3, V_INT_4, V_INT_5, V_INT_6, V_INT_7, V_INT_8, V_INT_9, V_INT_NEG_1, V_REFERENCE_NULL, V_STRING_ZERO_LENGTH
-
-
Constructor Summary
Constructors Constructor Description WritingPofHandler(WriteBuffer.BufferOutput out)
Construct a Writing POF Handler that will write a POF stream to the passed BufferOutput object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
beginArray(int iPos, int cElements)
Report that an array of values has been encountered in the POF stream.void
beginCollection(int iPos, int cElements)
Report that a collection of values has been encountered in the POF stream.void
beginMap(int iPos, int cElements)
Report that a map of key/value pairs has been encountered in the POF stream.void
beginSparseArray(int iPos, int cElements)
Report that a sparse array of values has been encountered in the POF stream.void
beginUniformArray(int iPos, int cElements, int nType)
Report that a uniform array of values has been encountered in the POF stream.void
beginUniformCollection(int iPos, int cElements, int nType)
Report that a uniform collection of values has been encountered in the POF stream.void
beginUniformKeysMap(int iPos, int cElements, int nTypeKeys)
Report that a map of key/value pairs (with the keys being of a uniform type) has been encountered in the POF stream.void
beginUniformMap(int iPos, int cElements, int nTypeKeys, int nTypeValues)
Report that a map of key/value pairs (with the keys being of a uniform type and the values being of a uniform type) has been encountered in the POF stream.void
beginUniformSparseArray(int iPos, int cElements, int nType)
Report that a uniform sparse array of values has been encountered in the POF stream.void
beginUserType(int iPos, int nUserTypeId, int nVersionId)
Report that a value of a "user type" has been encountered in the POF stream.void
beginUserType(int iPos, int nId, int nUserTypeId, int nVersionId)
Report that a value of a "user type" has been encountered in the POF stream.protected void
encodePosition(int iPos)
Called for each and every value going into the POF stream, in case the value needs its position to be encoded into the stream.void
endComplexValue()
Signifies the termination of the current complex value.WriteBuffer.BufferOutput
getBufferOutput()
Obtain the DataOutput object that this Writing POF Handler is writing to.protected WritingPofHandler.Complex
getComplex()
Obtain the current Complex object that represents the complex type that is being written to the POF stream.protected boolean
isCompressable()
Determine if the value encoding can be compressed by combining type and value information in such a way that type information could be lost.protected boolean
isSkippable()
Determine if the value encoding can be skipped.protected boolean
isTypeIdEncoded(int nTypeId)
Determine if the type should be encoded for the current value.void
onBoolean(int iPos, boolean f)
Report that a boolean value has been encountered in the POF stream.void
onChar(int iPos, char ch)
Report that a character value has been encountered in the POF stream.void
onCharString(int iPos, String s)
Report that a character string value has been encountered in the POF stream.void
onDate(int iPos, int nYear, int nMonth, int nDay)
Report that a date value has been encountered in the POF stream.void
onDateTime(int iPos, int nYear, int nMonth, int nDay, int nHour, int nMinute, int nSecond, int nNano, boolean fUTC)
Report that a date-time value has been encountered in the POF stream.void
onDateTime(int iPos, int nYear, int nMonth, int nDay, int nHour, int nMinute, int nSecond, int nNano, int nHourOffset, int nMinuteOffset)
Report that a date-time value (with a timezone offset) has been encountered in the POF stream.void
onDayTimeInterval(int iPos, int cDays, int cHours, int cMinutes, int cSeconds, int cNanos)
Report that a day-time interval value has been encountered in the POF stream.void
onDecimal128(int iPos, BigDecimal dec)
Report that a quad-precision decimal value (a base-10 floating point) has been encountered in the POF stream.void
onDecimal32(int iPos, BigDecimal dec)
Report that a single-precision decimal value (a base-10 floating point) has been encountered in the POF stream.void
onDecimal64(int iPos, BigDecimal dec)
Report that a double-precision decimal value (a base-10 floating point) has been encountered in the POF stream.void
onFloat128(int iPos, RawQuad qfl)
Report that a base-2 quad-precision floating point value has been encountered in the POF stream.void
onFloat32(int iPos, float fl)
Report that a base-2 single-precision floating point value has been encountered in the POF stream.void
onFloat64(int iPos, double dfl)
Report that a base-2 double-precision floating point value has been encountered in the POF stream.void
onIdentityReference(int iPos, int nId)
Specifies that a reference to a previously-identified value has been encountered in the POF stream.void
onInt128(int iPos, BigInteger n)
Report that a 128-bit integer value has been encountered in the POF stream.void
onInt16(int iPos, short n)
Report that a short integer value has been encountered in the POF stream.void
onInt32(int iPos, int n)
Report that an integer value has been encountered in the POF stream.void
onInt64(int iPos, long n)
Report that a long integer value has been encountered in the POF stream.void
onNullReference(int iPos)
Specifies that a null value has been encountered in the POF stream.void
onOctet(int iPos, int b)
Report that an octet value (a byte) has been encountered in the POF stream.void
onOctetString(int iPos, Binary bin)
Report that a octet string value has been encountered in the POF stream.void
onTime(int iPos, int nHour, int nMinute, int nSecond, int nNano, boolean fUTC)
Report that a time value has been encountered in the POF stream.void
onTime(int iPos, int nHour, int nMinute, int nSecond, int nNano, int nHourOffset, int nMinuteOffset)
Report that a time value (with a timezone offset) has been encountered in the POF stream.void
onTimeInterval(int iPos, int cHours, int cMinutes, int cSeconds, int cNanos)
Report that a time interval value has been encountered in the POF stream.void
onYearMonthInterval(int iPos, int cYears, int cMonths)
Report that a year-month interval value has been encountered in the POF stream.void
registerIdentity(int nId)
This method is invoked when an identity is encountered in the POF stream.-
Methods inherited from class com.tangosol.io.pof.PofHelper
calcDecimalSize, checkDate, checkDayTimeInterval, checkDecimalRange, checkElementCount, checkReferenceRange, checkTime, checkTimeInterval, checkTimeZone, checkType, checkYearMonthInterval, convertNumber, convertToDate, decodeTinyInt, encodeTinyInt, formatDate, formatTime, formatTime, getJavaTypeId, getPofTypeId, isIntrinsicPofType, readAsBigDecimal, readAsBigInteger, readAsChar, readAsDouble, readAsFloat, readAsInt, readAsLong, readAsQuad, readBigDecimal, readBigInteger, readChar, readLocalDate, readLocalDateTime, readLocalTime, readOffsetDateTime, readOffsetTime, readQuad, readRawDate, readRawTime, resizeArray, skipPackedInts, skipUniformValue, skipValue, writeBigDecimal, writeBigInteger, writeDate, writeTime
-
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
-
-
-
-
Constructor Detail
-
WritingPofHandler
public WritingPofHandler(WriteBuffer.BufferOutput out)
Construct a Writing POF Handler that will write a POF stream to the passed BufferOutput object.- Parameters:
out
- the BufferOutput to write to
-
-
Method Detail
-
registerIdentity
public void registerIdentity(int nId)
This method is invoked when an identity is encountered in the POF stream. The identity is used to uniquely identify the next value in the POF stream, and can be later referenced by thePofHandler.onIdentityReference(int, int)
method.- Specified by:
registerIdentity
in interfacePofHandler
- Parameters:
nId
- if (nId >= 0), then this is the identity encountered in the POF stream, otherwise it is an indicator that the following value could have been assigned an identifier but was not (i.e. that the subsequent value is of a referenceable data type)
-
onNullReference
public void onNullReference(int iPos)
Specifies that a null value has been encountered in the POF stream.- Specified by:
onNullReference
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwise
-
onIdentityReference
public void onIdentityReference(int iPos, int nId)
Specifies that a reference to a previously-identified value has been encountered in the POF stream.- Specified by:
onIdentityReference
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisenId
- the identity of the previously encountered value, as was specified in a previous call toPofHandler.registerIdentity(int)
-
onInt16
public void onInt16(int iPos, short n)
Report that a short integer value has been encountered in the POF stream.- Specified by:
onInt16
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisen
- the integer value as a short
-
onInt32
public void onInt32(int iPos, int n)
Report that an integer value has been encountered in the POF stream.- Specified by:
onInt32
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisen
- the integer value as an int
-
onInt64
public void onInt64(int iPos, long n)
Report that a long integer value has been encountered in the POF stream.- Specified by:
onInt64
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisen
- the integer value as a long
-
onInt128
public void onInt128(int iPos, BigInteger n)
Report that a 128-bit integer value has been encountered in the POF stream.- Specified by:
onInt128
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisen
- the integer value as a BigInteger
-
onFloat32
public void onFloat32(int iPos, float fl)
Report that a base-2 single-precision floating point value has been encountered in the POF stream.- Specified by:
onFloat32
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisefl
- the floating point value as a float
-
onFloat64
public void onFloat64(int iPos, double dfl)
Report that a base-2 double-precision floating point value has been encountered in the POF stream.- Specified by:
onFloat64
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisedfl
- the floating point value as a double
-
onFloat128
public void onFloat128(int iPos, RawQuad qfl)
Report that a base-2 quad-precision floating point value has been encountered in the POF stream.- Specified by:
onFloat128
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwiseqfl
- the floating point value as a quad
-
onDecimal32
public void onDecimal32(int iPos, BigDecimal dec)
Report that a single-precision decimal value (a base-10 floating point) has been encountered in the POF stream.- Specified by:
onDecimal32
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisedec
- the decimal value as a BigDecimal
-
onDecimal64
public void onDecimal64(int iPos, BigDecimal dec)
Report that a double-precision decimal value (a base-10 floating point) has been encountered in the POF stream.- Specified by:
onDecimal64
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisedec
- the decimal value as a BigDecimal
-
onDecimal128
public void onDecimal128(int iPos, BigDecimal dec)
Report that a quad-precision decimal value (a base-10 floating point) has been encountered in the POF stream.- Specified by:
onDecimal128
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisedec
- the decimal value as a BigDecimal
-
onBoolean
public void onBoolean(int iPos, boolean f)
Report that a boolean value has been encountered in the POF stream.- Specified by:
onBoolean
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisef
- the boolean value
-
onOctet
public void onOctet(int iPos, int b)
Report that an octet value (a byte) has been encountered in the POF stream.- Specified by:
onOctet
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwiseb
- the octet value as an int whose value is in the range 0 to 255 (0x00-0xFF) inclusive
-
onOctetString
public void onOctetString(int iPos, Binary bin)
Report that a octet string value has been encountered in the POF stream.- Specified by:
onOctetString
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisebin
- the octet string value as a Binary object
-
onChar
public void onChar(int iPos, char ch)
Report that a character value has been encountered in the POF stream.- Specified by:
onChar
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisech
- the character value as a char
-
onCharString
public void onCharString(int iPos, String s)
Report that a character string value has been encountered in the POF stream.- Specified by:
onCharString
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwises
- the character string value as a String object
-
onDate
public void onDate(int iPos, int nYear, int nMonth, int nDay)
Report that a date value has been encountered in the POF stream.- Specified by:
onDate
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisenYear
- the year number as defined by ISO8601; note the difference with the Java Date class, whose year is relative to 1900nMonth
- the month number between 1 and 12 inclusive as defined by ISO8601; note the difference from the Java Date class, whose month value is 0-based (0-11)nDay
- the day number between 1 and 31 inclusive as defined by ISO8601
-
onYearMonthInterval
public void onYearMonthInterval(int iPos, int cYears, int cMonths)
Report that a year-month interval value has been encountered in the POF stream.- Specified by:
onYearMonthInterval
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisecYears
- the number of years in the year-month intervalcMonths
- the number of months in the year-month interval
-
onTime
public void onTime(int iPos, int nHour, int nMinute, int nSecond, int nNano, boolean fUTC)
Report that a time value has been encountered in the POF stream.- Specified by:
onTime
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisenHour
- the hour between 0 and 23 inclusivenMinute
- the minute value between 0 and 59 inclusivenSecond
- the second value between 0 and 59 inclusive (and theoretically 60 for a leap-second)nNano
- the nanosecond value between 0 and 999999999 inclusivefUTC
- true if the time value is UTC or false if the time value does not have an explicit time zone
-
onTime
public void onTime(int iPos, int nHour, int nMinute, int nSecond, int nNano, int nHourOffset, int nMinuteOffset)
Report that a time value (with a timezone offset) has been encountered in the POF stream.- Specified by:
onTime
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisenHour
- the hour between 0 and 23 inclusivenMinute
- the minute value between 0 and 59 inclusivenSecond
- the second value between 0 and 59 inclusive (and theoretically 60 for a leap-second)nNano
- the nanosecond value between 0 and 999999999 inclusivenHourOffset
- the timezone offset in hours from UTC, for example 0 for BST, -5 for EST and 1 for CETnMinuteOffset
- the timezone offset in minutes, for example 0 (in most cases) or 30- See Also:
- worldtimezone.com
-
onTimeInterval
public void onTimeInterval(int iPos, int cHours, int cMinutes, int cSeconds, int cNanos)
Report that a time interval value has been encountered in the POF stream.- Specified by:
onTimeInterval
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisecHours
- the number of hours in the time intervalcMinutes
- the number of minutes in the time interval, from 0 to 59 inclusivecSeconds
- the number of seconds in the time interval, from 0 to 59 inclusivecNanos
- the number of nanoseconds, from 0 to 999999999 inclusive
-
onDateTime
public void onDateTime(int iPos, int nYear, int nMonth, int nDay, int nHour, int nMinute, int nSecond, int nNano, boolean fUTC)
Report that a date-time value has been encountered in the POF stream.- Specified by:
onDateTime
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisenYear
- the year number as defined by ISO8601; note the difference with the Java Date class, whose year is relative to 1900nMonth
- the month number between 1 and 12 inclusive as defined by ISO8601; note the difference from the Java Date class, whose month value is 0-based (0-11)nDay
- the day number between 1 and 31 inclusive as defined by ISO8601nHour
- the hour between 0 and 23 inclusivenMinute
- the minute value between 0 and 59 inclusivenSecond
- the second value between 0 and 59 inclusive (and theoretically 60 for a leap-second)nNano
- the nanosecond value between 0 and 999999999 inclusivefUTC
- true if the time value is UTC or false if the time value does not have an explicit time zone
-
onDateTime
public void onDateTime(int iPos, int nYear, int nMonth, int nDay, int nHour, int nMinute, int nSecond, int nNano, int nHourOffset, int nMinuteOffset)
Report that a date-time value (with a timezone offset) has been encountered in the POF stream.- Specified by:
onDateTime
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisenYear
- the year number as defined by ISO8601; note the difference with the Java Date class, whose year is relative to 1900nMonth
- the month number between 1 and 12 inclusive as defined by ISO8601; note the difference from the Java Date class, whose month value is 0-based (0-11)nDay
- the day number between 1 and 31 inclusive as defined by ISO8601nHour
- the hour between 0 and 23 inclusivenMinute
- the minute value between 0 and 59 inclusivenSecond
- the second value between 0 and 59 inclusive (and theoretically 60 for a leap-second)nNano
- the nanosecond value between 0 and 999999999 inclusivenHourOffset
- the timezone offset in hours from UTC, for example 0 for BST, -5 for EST and 1 for CETnMinuteOffset
- the timezone offset in minutes, for example 0 (in most cases) or 30
-
onDayTimeInterval
public void onDayTimeInterval(int iPos, int cDays, int cHours, int cMinutes, int cSeconds, int cNanos)
Report that a day-time interval value has been encountered in the POF stream.- Specified by:
onDayTimeInterval
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisecDays
- the number of days in the day-time intervalcHours
- the number of hours in the day-time interval, from 0 to 23 inclusivecMinutes
- the number of minutes in the day-time interval, from 0 to 59 inclusivecSeconds
- the number of seconds in the day-time interval, from 0 to 59 inclusivecNanos
- the number of nanoseconds in the day-time interval, from 0 to 999999999 inclusive
-
beginCollection
public void beginCollection(int iPos, int cElements)
Report that a collection of values has been encountered in the POF stream.This method call will be followed by a separate call to an "on" or "begin" method for each of the cElements elements in the collection, and the collection extent will then be terminated by a call to
PofHandler.endComplexValue()
.- Specified by:
beginCollection
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisecElements
- the exact number of values (elements) in the collection
-
beginUniformCollection
public void beginUniformCollection(int iPos, int cElements, int nType)
Report that a uniform collection of values has been encountered in the POF stream.This method call will be followed by a separate call to an "on" or "begin" method for each of the cElements elements in the collection, and the collection extent will then be terminated by a call to
PofHandler.endComplexValue()
.- Specified by:
beginUniformCollection
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisecElements
- the exact number of values (elements) in the collectionnType
- the type identifier for all of the values in the uniform collection
-
beginArray
public void beginArray(int iPos, int cElements)
Report that an array of values has been encountered in the POF stream.This method call will be followed by a separate call to an "on" or "begin" method for each of the cElements elements in the array, and the array extent will then be terminated by a call to
PofHandler.endComplexValue()
.- Specified by:
beginArray
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisecElements
- the exact number of values (elements) in the array
-
beginUniformArray
public void beginUniformArray(int iPos, int cElements, int nType)
Report that a uniform array of values has been encountered in the POF stream.This method call will be followed by a separate call to an "on" or "begin" method for each of the cElements elements in the array, and the array extent will then be terminated by a call to
PofHandler.endComplexValue()
.- Specified by:
beginUniformArray
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisecElements
- the exact number of values (elements) in the arraynType
- the type identifier for all of the values in the uniform array
-
beginSparseArray
public void beginSparseArray(int iPos, int cElements)
Report that a sparse array of values has been encountered in the POF stream.This method call will be followed by a separate call to an "on" or "begin" method for present element in the sparse array (up to cElements elements), and the array extent will then be terminated by a call to
PofHandler.endComplexValue()
.- Specified by:
beginSparseArray
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisecElements
- the exact number of elements in the array, which is greater than or equal to the number of values in the sparse POF stream; in other words, the number of values that will subsequently be reported will not exceed this number
-
beginUniformSparseArray
public void beginUniformSparseArray(int iPos, int cElements, int nType)
Report that a uniform sparse array of values has been encountered in the POF stream.This method call will be followed by a separate call to an "on" or "begin" method for present element in the sparse array (up to cElements elements), and the array extent will then be terminated by a call to
PofHandler.endComplexValue()
.- Specified by:
beginUniformSparseArray
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisecElements
- the exact number of elements in the array, which is greater than or equal to the number of values in the sparse POF stream; in other words, the number of values that will subsequently be reported will not exceed this numbernType
- the type identifier for all of the values in the uniform sparse array
-
beginMap
public void beginMap(int iPos, int cElements)
Report that a map of key/value pairs has been encountered in the POF stream.This method call will be followed by a separate call to an "on" or "begin" method for each of the cElements elements in the map, and the map extent will then be terminated by a call to
PofHandler.endComplexValue()
.- Specified by:
beginMap
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisecElements
- the exact number of key/value pairs (entries) in the map
-
beginUniformKeysMap
public void beginUniformKeysMap(int iPos, int cElements, int nTypeKeys)
Report that a map of key/value pairs (with the keys being of a uniform type) has been encountered in the POF stream.This method call will be followed by a separate call to an "on" or "begin" method for each of the cElements elements in the map, and the map extent will then be terminated by a call to
PofHandler.endComplexValue()
.- Specified by:
beginUniformKeysMap
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisecElements
- the exact number of key/value pairs (entries) in the mapnTypeKeys
- the type identifier for all of the keys in the uniform-keys map
-
beginUniformMap
public void beginUniformMap(int iPos, int cElements, int nTypeKeys, int nTypeValues)
Report that a map of key/value pairs (with the keys being of a uniform type and the values being of a uniform type) has been encountered in the POF stream.This method call will be followed by a separate call to an "on" or "begin" method for each of the cElements elements in the map, and the map extent will then be terminated by a call to
PofHandler.endComplexValue()
.- Specified by:
beginUniformMap
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisecElements
- the exact number of key/value pairs (entries) in the mapnTypeKeys
- the type identifier for all of the keys in the uniform mapnTypeValues
- the type identifier for all of the values in the uniform map
-
beginUserType
public void beginUserType(int iPos, int nUserTypeId, int nVersionId)
Report that a value of a "user type" has been encountered in the POF stream. A user type is analogous to a "class", and a value of a user type is analogous to an "object".This method call will be followed by a separate call to an "on" or "begin" method for each of the property values in the user type, and the user type will then be terminated by a call to
PofHandler.endComplexValue()
.- Specified by:
beginUserType
in interfacePofHandler
- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisenUserTypeId
- the user type identifier, (nUserTypeId >= 0)nVersionId
- the version identifier for the user data type data in the POF stream, (nVersionId >= 0)
-
beginUserType
public void beginUserType(int iPos, int nId, int nUserTypeId, int nVersionId)
Report that a value of a "user type" has been encountered in the POF stream. A user type is analogous to a "class", and a value of a user type is analogous to an "object".This method call will be followed by a separate call to an "on" or "begin" method for each of the property values in the user type, and the user type will then be terminated by a call to
endComplexValue()
.- Parameters:
iPos
- context-sensitive position information: property index within a user type, array index within an array, element counter within a collection, entry counter within a map, -1 otherwisenId
- identity of the object to encode, or -1 if identity shouldn't be encoded in the POF streamnUserTypeId
- the user type identifier, (nUserTypeId >= 0)nVersionId
- the version identifier for the user data type data in the POF stream, (nVersionId >= 0)
-
endComplexValue
public void endComplexValue()
Signifies the termination of the current complex value. Complex values are any of the collection, array, map and user types. For each call to one of the "begin" methods, there will be a corresponding call to this method, even if there were no contents in the complex value.- Specified by:
endComplexValue
in interfacePofHandler
-
getBufferOutput
public WriteBuffer.BufferOutput getBufferOutput()
Obtain the DataOutput object that this Writing POF Handler is writing to.- Returns:
- the DataOutput object that this POF handler is writing to
-
getComplex
protected WritingPofHandler.Complex getComplex()
Obtain the current Complex object that represents the complex type that is being written to the POF stream.- Returns:
- the current Complex object
-
isSkippable
protected boolean isSkippable()
Determine if the value encoding can be skipped. A value can be skipped if it is a default value and if it does not have an identity and if it is in a sparse data structure.- Returns:
- true iff value encoding of default values can be skipped altogether
-
isCompressable
protected boolean isCompressable()
Determine if the value encoding can be compressed by combining type and value information in such a way that type information could be lost.- Returns:
- true iff values can be encoded without type information
-
encodePosition
protected void encodePosition(int iPos)
Called for each and every value going into the POF stream, in case the value needs its position to be encoded into the stream.- Parameters:
iPos
- the position (property index, array index, etc.)
-
isTypeIdEncoded
protected boolean isTypeIdEncoded(int nTypeId)
Determine if the type should be encoded for the current value.- Parameters:
nTypeId
- the type of the current value- Returns:
- true if the type ID should be placed into the POF stream, and false if only the value itself should be placed into the stream
-
-