Class PofBufferWriter
- All Implemented Interfaces:
PofConstants
,PofWriter
- Direct Known Subclasses:
PofBufferWriter.UserTypeWriter
PofWriter
implementation that writes POF-encoded data to a
BufferOutput
.- Since:
- Coherence 3.2
- Author:
- jh 2006.07.11
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
A "library" of object references and their corresponding identities in the POF stream.static class
The UserTypeWriter implementation is a contextually-aware PofWriter whose purpose is to write the properties of a value of a specified user type.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
Modifier and TypeFieldDescriptionprotected PofContext
The PofContext used by this PofBufferWriter to serialize user types.protected boolean
Indicate if the object to be written is either Evolvable or part of an Evolvable object.protected WritingPofHandler
The WritingPofHandler used to write a POF stream.protected WriteBuffer.BufferOutput
The BufferOutput object that the PofBufferWriter writes to.protected PofBufferWriter.ReferenceLibrary
If references are used, then this is the ReferenceLibrary.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
ConstructorDescriptionPofBufferWriter
(WritingPofHandler handler, PofContext ctx) Construct a new PofBufferWriter that will write a POF stream using the passed WritingPofHandler.Construct a new PofBufferWriter that will write a POF stream to the passed BufferOutput object. -
Method Summary
Modifier and TypeMethodDescriptionprotected static void
assertEqual
(Class clz, Class clzTest) Assert that a class is equal to another class.protected void
beginProperty
(int iProp) Report that a POF property is about to be written to the POF stream.createNestedPofWriter
(int iProp) Obtain a PofWriter that can be used to write a set of properties into a single property of the current user type.createNestedPofWriter
(int iProp, int nTypeId) Obtain a PofWriter that can be used to write a set of properties into a single property of the current user type.void
Ensure that reference support (necessary for cyclic dependencies) is enabled.protected void
endProperty
(int iProp) Signifies the termination of the current POF property.protected static Date
Return aDate
which is suitable for POF serializationprotected WriteBuffer.BufferOutput
Return the BufferOutput that this PofBufferWriter writes to.protected static int
Extract the nanoseconds from the date.protected PofBufferWriter
If this writer is contextually within a user type, obtain the writer which created this writer in order to write the user type.Return the PofContext object used by this PofWriter to serialize user types to a POF stream.protected WritingPofHandler
Return the WritingPofHandler used internally by this PofBufferWriter to write the POF stream.int
Determine the user type that is currently being written.int
Determine the version identifier of the user type that is currently being written.protected boolean
Determine if the object to be written is either Evolvable or part of an Evolvable object.boolean
Determine if reference support is enabled.static void
protected void
Called when an unexpected exception is caught while writing to the POF stream.protected void
setEvolvable
(boolean fEvolvable) Set the Evolvable flag to indicate if the object to be written is Evolvable or part of an Evolvable object.void
setPofContext
(PofContext ctx) Configure the PofContext object used by this PofWriter to serialize user types to a POF stream.void
setVersionId
(int nVersionId) Set the version identifier of the user type that is currently being written.void
writeBigDecimal
(int iProp, BigDecimal dec) Write a BigDecimal property to the POF stream.void
writeBigInteger
(int iProp, BigInteger n) Write a BigInteger property to the POF stream.void
writeBinary
(int iProp, Binary bin) Write aBinary
property to the POF stream.void
writeBoolean
(int iProp, boolean f) Write a boolean property to the POF stream.protected void
writeBoolean
(int iProp, boolean f, boolean fReferenceable) Write a boolean property to the POF stream.void
writeBooleanArray
(int iProp, boolean[] af) Write a boolean[] property to the POF stream.void
writeByte
(int iProp, byte b) Write a byte property to the POF stream.protected void
writeByte
(int iProp, byte b, boolean fReferenceable) Write a byte property to the POF stream.void
writeByteArray
(int iProp, byte[] ab) Write a byte[] property to the POF stream.void
writeChar
(int iProp, char ch) Write a char property to the POF stream.protected void
writeChar
(int iProp, char ch, boolean fReferenceable) Write a char property to the POF stream.void
writeCharArray
(int iProp, char[] ach) Write a char[] property to the POF stream.<T> void
writeCollection
(int iProp, Collection<? extends T> coll) Write a Collection property to the POF stream.<T> void
writeCollection
(int iProp, Collection<? extends T> coll, Class<? extends T> clz) Write a uniform Collection property to the POF stream.void
Write a LocalDate property to the POF stream in ISO8601 format.void
Write a Date property to the POF stream in ISO8601 format.void
writeDateTime
(int iProp, Timestamp dt) Write a Timestamp property to the POF stream in ISO8601 format.void
writeDateTime
(int iProp, LocalDateTime dt) Write a LocalDateTime property to the POF stream in ISO8601 format.void
writeDateTime
(int iProp, Date dt) Write a Date property to the POF stream in ISO8601 format.void
writeDateTimeWithZone
(int iProp, Timestamp dt) Write a Timestamp property to the POF stream in ISO8601 format.void
writeDateTimeWithZone
(int iProp, OffsetDateTime dt) Write a OffsetDateTime property to the POF stream in ISO8601 format.void
writeDateTimeWithZone
(int iProp, Date dt) Write a Date property to the POF stream in ISO8601 format.void
writeDouble
(int iProp, double dfl) Write a double property to the POF stream.protected void
writeDouble
(int iProp, double dfl, boolean fReferenceable) Write a double property to the POF stream.void
writeDoubleArray
(int iProp, double[] adfl) Write a double[] property to the POF stream.void
writeFloat
(int iProp, float fl) Write a float property to the POF stream.protected void
writeFloat
(int iProp, float fl, boolean fReferenceable) Write a float property to the POF stream.void
writeFloatArray
(int iProp, float[] afl) Write a float[] property to the POF stream.void
writeInt
(int iProp, int n) Write a int property to the POF stream.protected void
writeInt
(int iProp, int n, boolean fReferenceable) Write a int property to the POF stream.void
writeIntArray
(int iProp, int[] an) Write a int[] property to the POF stream.void
writeLong
(int iProp, long n) Write a long property to the POF stream.protected void
writeLong
(int iProp, long n, boolean fReferenceable) Write a long property to the POF stream.void
writeLongArray
(int iProp, long[] an) Write a long[] property to the POF stream.void
writeLongArray
(int iProp, LongArray la) Write a LongArray property to the POF stream.void
writeLongArray
(int iProp, LongArray la, Class clz) Write a uniform LongArray property to the POF stream.<K,
V> void Write a Map property to the POF stream.<K,
V> void Write a uniform key Map property to the POF stream.<K,
V> void Write a uniform Map property to the POF stream.void
writeObject
(int iProp, Object o) Write an Object property to the POF stream.<T> void
writeObjectArray
(int iProp, T[] ao) Write an Object[] property to the POF stream.<T> void
writeObjectArray
(int iProp, T[] ao, Class<? extends T> clz) Write a uniform Object[] property to the POF stream.<T> void
writeOptional
(int iProp, Optional<T> o) void
writeOptionalDouble
(int iProp, OptionalDouble n) void
writeOptionalInt
(int iProp, OptionalInt n) void
writeOptionalLong
(int iProp, OptionalLong n) void
writeRawDate
(int iProp, RawDate date) Write a RawDate property to the POF stream.void
writeRawDateTime
(int iProp, RawDateTime dt) Write a RawDateTime property to the POF stream.void
writeRawDayTimeInterval
(int iProp, RawDayTimeInterval interval) Write a RawDayTimeInterval property to the POF stream.void
writeRawQuad
(int iProp, RawQuad qfl) Write a RawQuad property to the POF stream.void
writeRawTime
(int iProp, RawTime time) Write a RawTime property to the POF stream.void
writeRawTimeInterval
(int iProp, RawTimeInterval interval) Write a RawTimeInterval property to the POF stream.void
writeRawYearMonthInterval
(int iProp, RawYearMonthInterval interval) Write a RawYearMonthInterval property to the POF stream.void
writeRemainder
(Binary binProps) Write the remaining properties to the POF stream, terminating the writing of the current user type.void
writeShort
(int iProp, short n) Write a short property to the POF stream.protected void
writeShort
(int iProp, short n, boolean fReferenceable) Write a short property to the POF stream.void
writeShortArray
(int iProp, short[] an) Write a short[] property to the POF stream.void
writeString
(int iProp, String s) Write a String property to the POF stream.void
Write a Timestamp property to the POF stream in ISO8601 format.void
Write a LocalTime property to the POF stream in ISO8601 format.void
Write a Date property to the POF stream in ISO8601 format.void
writeTimeWithZone
(int iProp, Timestamp dt) Write a Timestamp property to the POF stream in ISO8601 format.void
writeTimeWithZone
(int iProp, OffsetTime dt) Write a OffsetTime property to the POF stream in ISO8601 format.void
writeTimeWithZone
(int iProp, Date dt) Write a Date property to the POF stream in ISO8601 format.protected void
writeUserType
(int iProp, Object o) Write a user-type to 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
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.tangosol.io.pof.PofWriter
writeDateTimeWithZone
-
Field Details
-
m_out
The BufferOutput object that the PofBufferWriter writes to. -
m_ctx
The PofContext used by this PofBufferWriter to serialize user types. -
m_fEvolvable
protected boolean m_fEvolvableIndicate if the object to be written is either Evolvable or part of an Evolvable object. -
m_handler
The WritingPofHandler used to write a POF stream. -
m_refs
If references are used, then this is the ReferenceLibrary.
-
-
Constructor Details
-
PofBufferWriter
Construct a new PofBufferWriter that will write a POF stream to the passed BufferOutput object.- Parameters:
out
- the BufferOutput object to write to; must not be nullctx
- the PofContext used by the new PofBufferWriter to serialize user types; must not be null
-
PofBufferWriter
Construct a new PofBufferWriter that will write a POF stream using the passed WritingPofHandler.- Parameters:
handler
- the WritingPofHandler used for writing; must not be nullctx
- the PofContext used by the new PofBufferWriter to serialize user types; must not be null
-
-
Method Details
-
writeBoolean
Write a boolean property to the POF stream.- Specified by:
writeBoolean
in interfacePofWriter
- Parameters:
iProp
- the property indexf
- the boolean property value to write- Throws:
IOException
- if an I/O error occurs
-
writeBoolean
Write a boolean property to the POF stream.- Parameters:
iProp
- the property indexf
- the boolean property value to writefReferenceable
- true if the property value is a referenceable type- Throws:
IllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF streamIOException
- if an I/O error occurs
-
writeByte
Write a byte property to the POF stream.- Specified by:
writeByte
in interfacePofWriter
- Parameters:
iProp
- the property indexb
- the byte property value to write- Throws:
IOException
- if an I/O error occurs
-
writeByte
Write a byte property to the POF stream.- Parameters:
iProp
- the property indexb
- the byte property value to writefReferenceable
- true if the property value is a referenceable type- Throws:
IllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF streamIOException
- if an I/O error occurs
-
writeChar
Write a char property to the POF stream.- Specified by:
writeChar
in interfacePofWriter
- Parameters:
iProp
- the property indexch
- the char property value to write- Throws:
IOException
- if an I/O error occurs
-
writeChar
Write a char property to the POF stream.- Parameters:
iProp
- the property indexch
- the char property value to writefReferenceable
- true if the property value is a referenceable type- Throws:
IllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF streamIOException
- if an I/O error occurs
-
writeShort
Write a short property to the POF stream.- Specified by:
writeShort
in interfacePofWriter
- Parameters:
iProp
- the property indexn
- the short property value to write- Throws:
IOException
- if an I/O error occurs
-
writeShort
Write a short property to the POF stream.- Parameters:
iProp
- the property indexn
- the short property value to writefReferenceable
- true if the property value is a referenceable type- Throws:
IllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF streamIOException
- if an I/O error occurs
-
writeInt
Write a int property to the POF stream.- Specified by:
writeInt
in interfacePofWriter
- Parameters:
iProp
- the property indexn
- the int property value to write- Throws:
IOException
- if an I/O error occurs
-
writeInt
Write a int property to the POF stream.- Parameters:
iProp
- the property indexn
- the int property value to writefReferenceable
- true if the property value is a referenceable type- Throws:
IllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF streamIOException
- if an I/O error occurs
-
writeLong
Write a long property to the POF stream.- Specified by:
writeLong
in interfacePofWriter
- Parameters:
iProp
- the property indexn
- the long property value to write- Throws:
IOException
- if an I/O error occurs
-
writeLong
Write a long property to the POF stream.- Parameters:
iProp
- the property indexn
- the long property value to writefReferenceable
- true if the property value is a referenceable type- Throws:
IllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF streamIOException
- if an I/O error occurs
-
writeFloat
Write a float property to the POF stream.- Specified by:
writeFloat
in interfacePofWriter
- Parameters:
iProp
- the property indexfl
- the float property value to write- Throws:
IOException
- if an I/O error occurs
-
writeFloat
Write a float property to the POF stream.- Parameters:
iProp
- the property indexfl
- the float property value to writefReferenceable
- true if the property value is a referenceable type- Throws:
IllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF streamIOException
- if an I/O error occurs
-
writeDouble
Write a double property to the POF stream.- Specified by:
writeDouble
in interfacePofWriter
- Parameters:
iProp
- the property indexdfl
- the double property value to write- Throws:
IOException
- if an I/O error occurs
-
writeDouble
Write a double property to the POF stream.- Parameters:
iProp
- the property indexdfl
- the double property value to writefReferenceable
- true if the property value is a referenceable type- Throws:
IllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF streamIOException
- if an I/O error occurs
-
writeBooleanArray
Write a boolean[] property to the POF stream.- Specified by:
writeBooleanArray
in interfacePofWriter
- Parameters:
iProp
- the property indexaf
- the boolean[] property value to write- Throws:
IOException
- if an I/O error occurs
-
writeByteArray
Write a byte[] property to the POF stream.- Specified by:
writeByteArray
in interfacePofWriter
- Parameters:
iProp
- the property indexab
- the byte[] property value to write- Throws:
IOException
- if an I/O error occurs
-
writeCharArray
Write a char[] property to the POF stream.- Specified by:
writeCharArray
in interfacePofWriter
- Parameters:
iProp
- the property indexach
- the char[] property value to write- Throws:
IOException
- if an I/O error occurs
-
writeShortArray
Write a short[] property to the POF stream.- Specified by:
writeShortArray
in interfacePofWriter
- Parameters:
iProp
- the property indexan
- the short[] property value to write- Throws:
IOException
- if an I/O error occurs
-
writeIntArray
Write a int[] property to the POF stream.- Specified by:
writeIntArray
in interfacePofWriter
- Parameters:
iProp
- the property indexan
- the int[] property value to write- Throws:
IOException
- if an I/O error occurs
-
writeLongArray
Write a long[] property to the POF stream.- Specified by:
writeLongArray
in interfacePofWriter
- Parameters:
iProp
- the property indexan
- the long[] property value to write- Throws:
IOException
- if an I/O error occurs
-
writeFloatArray
Write a float[] property to the POF stream.- Specified by:
writeFloatArray
in interfacePofWriter
- Parameters:
iProp
- the property indexafl
- the float[] property value to write- Throws:
IOException
- if an I/O error occurs
-
writeDoubleArray
Write a double[] property to the POF stream.- Specified by:
writeDoubleArray
in interfacePofWriter
- Parameters:
iProp
- the property indexadfl
- the double[] property value to write- Throws:
IOException
- if an I/O error occurs
-
writeBigInteger
Write a BigInteger property to the POF stream.- Specified by:
writeBigInteger
in interfacePofWriter
- Parameters:
iProp
- the property indexn
- the BigInteger property value to write- Throws:
IOException
- if an I/O error occurs
-
writeRawQuad
Write a RawQuad property to the POF stream.- Specified by:
writeRawQuad
in interfacePofWriter
- Parameters:
iProp
- the property indexqfl
- the RawQuad property value to write- Throws:
IOException
- if an I/O error occurs
-
writeBigDecimal
Write a BigDecimal property to the POF stream.- Specified by:
writeBigDecimal
in interfacePofWriter
- Parameters:
iProp
- the property indexdec
- the BigDecimal property value to write- Throws:
IOException
- if an I/O error occurs
-
writeBinary
Write aBinary
property to the POF stream.- Specified by:
writeBinary
in interfacePofWriter
- Parameters:
iProp
- the property indexbin
- the Binary property value to write- Throws:
IOException
- if an I/O error occurs
-
writeString
Write a String property to the POF stream.- Specified by:
writeString
in interfacePofWriter
- Parameters:
iProp
- the property indexs
- the String property value to write- Throws:
IOException
- if an I/O error occurs
-
writeDate
Write a Date property to the POF stream in ISO8601 format.This method encodes the year, month and day information of the specified Date object. No time or timezone information is encoded.
- Specified by:
writeDate
in interfacePofWriter
- Parameters:
iProp
- the property indexdt
- the Date property value to write in ISO8601 format- Throws:
IOException
- if an I/O error occurs
-
writeDate
Description copied from interface:PofWriter
Write a LocalDate property to the POF stream in ISO8601 format.This method encodes the year, month and day information of the specified LocalDate object. No time or timezone information is encoded.
- Specified by:
writeDate
in interfacePofWriter
- Parameters:
iProp
- the property indexdt
- the LocalDate property value to write in ISO8601 format- Throws:
IOException
- if an I/O error occurs
-
writeDateTime
Write a Date property to the POF stream in ISO8601 format.This method encodes the year, month, day, hour, minute, second and millisecond information of the specified Date object. No timezone information is encoded.
- Specified by:
writeDateTime
in interfacePofWriter
- Parameters:
iProp
- the property indexdt
- the Date property value to write in ISO8601 format- Throws:
IOException
- if an I/O error occurs
-
writeDateTime
Description copied from interface:PofWriter
Write a LocalDateTime property to the POF stream in ISO8601 format.This method encodes the year, month, day, hour, minute, second and millisecond information of the specified LocalDateTime object. No timezone information is encoded.
- Specified by:
writeDateTime
in interfacePofWriter
- Parameters:
iProp
- the property indexdt
- the LocalDateTime property value to write in ISO8601 format- Throws:
IOException
- if an I/O error occurs
-
writeDateTime
Write a Timestamp property to the POF stream in ISO8601 format.This method encodes the year, month, day, hour, minute, second, millisecond and nanosecond information of the specified Timestamp object. No timezone information is encoded.
- Specified by:
writeDateTime
in interfacePofWriter
- Parameters:
iProp
- the property indexdt
- the Timestamp property value to write in ISO8601 format- Throws:
IOException
- if an I/O error occurs
-
writeDateTimeWithZone
Write a Date property to the POF stream in ISO8601 format.This method encodes the year, month, day, hour, minute, second, millisecond and timezone information of the specified Date object.
- Specified by:
writeDateTimeWithZone
in interfacePofWriter
- Parameters:
iProp
- the property indexdt
- the Date property value to write in ISO8601 format- Throws:
IOException
- if an I/O error occurs
-
writeDateTimeWithZone
Description copied from interface:PofWriter
Write a OffsetDateTime property to the POF stream in ISO8601 format.This method encodes the year, month, day, hour, minute, second, millisecond and timezone information of the specified OffsetDateTime object.
- Specified by:
writeDateTimeWithZone
in interfacePofWriter
- Parameters:
iProp
- the property indexdt
- the OffsetDateTime property value to write in ISO8601 format- Throws:
IOException
- if an I/O error occurs
-
writeDateTimeWithZone
Write a Timestamp property to the POF stream in ISO8601 format.This method encodes the year, month, day, hour, minute, second, millisecond, nanosecond and timezone information of the specified Timestamp object.
- Specified by:
writeDateTimeWithZone
in interfacePofWriter
- Parameters:
iProp
- the property indexdt
- the Timestamp property value to write in ISO8601 format- Throws:
IOException
- if an I/O error occurs
-
writeTime
Write a Date property to the POF stream in ISO8601 format.This method encodes the hour, minute, second and millisecond information of the specified Date object. No year, month, day or timezone information is encoded.
- Specified by:
writeTime
in interfacePofWriter
- Parameters:
iProp
- the property indexdt
- the Date property value to write in ISO8601 format- Throws:
IOException
- if an I/O error occurs
-
writeTime
Description copied from interface:PofWriter
Write a LocalTime property to the POF stream in ISO8601 format.This method encodes the hour, minute, second and millisecond information of the specified LocalTime object. No year, month, day or timezone information is encoded.
- Specified by:
writeTime
in interfacePofWriter
- Parameters:
iProp
- the property indexdt
- the LocalTime property value to write in ISO8601 format- Throws:
IOException
- if an I/O error occurs
-
writeTime
Write a Timestamp property to the POF stream in ISO8601 format.This method encodes the hour, minute, second, millisecond and nanosecond information of the specified Timestamp object.
- Specified by:
writeTime
in interfacePofWriter
- Parameters:
iProp
- the property indexdt
- the Timestamp property value to write in ISO8601 format- Throws:
IOException
- if an I/O error occurs
-
writeTimeWithZone
Write a Date property to the POF stream in ISO8601 format.This method encodes the hour, minute, second, millisecond and timezone information of the specified Date object. No year, month or day information is encoded.
- Specified by:
writeTimeWithZone
in interfacePofWriter
- Parameters:
iProp
- the property indexdt
- the Date property value to write in ISO8601 format- Throws:
IOException
- if an I/O error occurs
-
writeTimeWithZone
Description copied from interface:PofWriter
Write a OffsetTime property to the POF stream in ISO8601 format.This method encodes the hour, minute, second, millisecond and timezone information of the specified OffsetTime object. No year, month or day information is encoded.
- Specified by:
writeTimeWithZone
in interfacePofWriter
- Parameters:
iProp
- the property indexdt
- the OffsetTime property value to write in ISO8601 format- Throws:
IOException
- if an I/O error occurs
-
writeTimeWithZone
Write a Timestamp property to the POF stream in ISO8601 format.This method encodes the hour, minute, second, millisecond, nanosecond and timezone information of the specified Timestamp object. No year, month or day information is encoded.
- Specified by:
writeTimeWithZone
in interfacePofWriter
- Parameters:
iProp
- the property indexdt
- the Timestamp property value to write in ISO8601 format- Throws:
IOException
- if an I/O error occurs
-
writeRawDate
Write a RawDate property to the POF stream.- Specified by:
writeRawDate
in interfacePofWriter
- Parameters:
iProp
- the property indexdate
- the RawDate property value to write- Throws:
IOException
- if an I/O error occurs
-
writeRawTime
Write a RawTime property to the POF stream.- Specified by:
writeRawTime
in interfacePofWriter
- Parameters:
iProp
- the property indextime
- the RawTime property value to write- Throws:
IOException
- if an I/O error occurs
-
writeRawDateTime
Write a RawDateTime property to the POF stream.- Specified by:
writeRawDateTime
in interfacePofWriter
- Parameters:
iProp
- the property indexdt
- the RawDateTime property value to write- Throws:
IOException
- if an I/O error occurs
-
writeRawYearMonthInterval
Write a RawYearMonthInterval property to the POF stream.- Specified by:
writeRawYearMonthInterval
in interfacePofWriter
- Parameters:
iProp
- the property indexinterval
- the RawYearMonthInterval property value to write- Throws:
IOException
- if an I/O error occurs
-
writeRawTimeInterval
Write a RawTimeInterval property to the POF stream.- Specified by:
writeRawTimeInterval
in interfacePofWriter
- Parameters:
iProp
- the property indexinterval
- the RawTimeInterval property value to write- Throws:
IOException
- if an I/O error occurs
-
writeRawDayTimeInterval
Write a RawDayTimeInterval property to the POF stream.- Specified by:
writeRawDayTimeInterval
in interfacePofWriter
- Parameters:
iProp
- the property indexinterval
- the RawDayTimeInterval property value to write- Throws:
IOException
- if an I/O error occurs
-
writeObject
Write an Object property to the POF stream.The given object must be an instance of one of the following:
- boolean[]
- byte[]
- char[]
- short[]
- int[]
- long[]
- float[]
- double[]
- Boolean
- Byte
- Char
- Short
- Integer
- Long
- BigInteger
- Float
- Double
RawQuad
- BigDecimal
Binary
- String
- Date
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
- Collection
LongArray
PortableObject
Otherwise, a
PofSerializer
for the object must be obtainable from thePofContext
associated with this PofWriter.- Specified by:
writeObject
in interfacePofWriter
- Parameters:
iProp
- the property indexo
- the Object property to write- Throws:
IOException
- if an I/O error occurs
-
writeUserType
Write a user-type to the POF stream.- Parameters:
iProp
- the property indexo
- the object to write- Throws:
IOException
- if an I/O error occurs
-
writeObjectArray
Write an Object[] property to the POF stream.Each element of the given array must be an instance (or an array of instances) of one of the following:
- boolean[]
- byte[]
- char[]
- short[]
- int[]
- long[]
- float[]
- double[]
- Boolean
- Byte
- Char
- Short
- Integer
- Long
- BigInteger
- Float
- Double
RawQuad
- BigDecimal
Binary
- String
- Date
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
- Collection
LongArray
PortableObject
Otherwise, a
PofSerializer
for each element of the array must be obtainable from thePofContext
associated with this PofWriter.- Specified by:
writeObjectArray
in interfacePofWriter
- Type Parameters:
T
- type of the elements in the array- Parameters:
iProp
- the property indexao
- the Object[] property to write- Throws:
IOException
- if an I/O error occurs
-
writeObjectArray
Write a uniform Object[] property to the POF stream.Each element of the given array must be an instance (or an array of instances) of one of the following:
- boolean[]
- byte[]
- char[]
- short[]
- int[]
- long[]
- float[]
- double[]
- Boolean
- Byte
- Char
- Short
- Integer
- Long
- BigInteger
- Float
- Double
RawQuad
- BigDecimal
Binary
- String
- Date
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
- Collection
LongArray
PortableObject
Otherwise, a
PofSerializer
for each element of the array must be obtainable from thePofContext
associated with this PofWriter.Additionally, the type of each element must be equal to the specified class.
- Specified by:
writeObjectArray
in interfacePofWriter
- Type Parameters:
T
- the type of the elements in the array- Parameters:
iProp
- the property indexao
- the Object[] property to writeclz
- the class of all elements; must not be null- Throws:
IOException
- if an I/O error occurs
-
writeCollection
Write a Collection property to the POF stream.Each element of the given Collection must be an instance (or an array of instances) of one of the following:
- boolean[]
- byte[]
- char[]
- short[]
- int[]
- long[]
- float[]
- double[]
- Boolean
- Byte
- Char
- Short
- Integer
- Long
- BigInteger
- Float
- Double
RawQuad
- BigDecimal
Binary
- String
- Date
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
- Collection
LongArray
PortableObject
Otherwise, a
PofSerializer
for each element of the Collection must be obtainable from thePofContext
associated with this PofWriter.- Specified by:
writeCollection
in interfacePofWriter
- Type Parameters:
T
- the type of elements in Collection- Parameters:
iProp
- the property indexcoll
- the Collection property to write- Throws:
IOException
- if an I/O error occurs
-
writeCollection
public <T> void writeCollection(int iProp, Collection<? extends T> coll, Class<? extends T> clz) throws IOException Write a uniform Collection property to the POF stream.Each element of the given Collection must be an instance (or an array of instances) of one of the following:
- boolean[]
- byte[]
- char[]
- short[]
- int[]
- long[]
- float[]
- double[]
- Boolean
- Byte
- Char
- Short
- Integer
- Long
- BigInteger
- Float
- Double
RawQuad
- BigDecimal
Binary
- String
- Date
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
- Collection
LongArray
PortableObject
Otherwise, a
PofSerializer
for each element of the Collection must be obtainable from thePofContext
associated with this PofWriter.Additionally, the type of each element must be equal to the specified class.
- Specified by:
writeCollection
in interfacePofWriter
- Type Parameters:
T
- the type of elements in the Collection- Parameters:
iProp
- the property indexcoll
- the Collection property to writeclz
- the class of all elements; must not be null- Throws:
IOException
- if an I/O error occurs
-
writeLongArray
Description copied from interface:PofWriter
Write a LongArray property to the POF stream.Each element of the given LongArray must be an instance (or an array of instances) of one of the following:
- boolean[]
- byte[]
- char[]
- short[]
- int[]
- long[]
- float[]
- double[]
- Boolean
- Byte
- Char
- Short
- Integer
- Long
- BigInteger
- Float
- Double
RawQuad
- BigDecimal
Binary
- String
- Date
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
- Collection
LongArray
PortableObject
Otherwise, a
PofSerializer
for each element of the LongArray must be obtainable from thePofContext
associated with this PofWriter.- Specified by:
writeLongArray
in interfacePofWriter
- Parameters:
iProp
- the property indexla
- the LongArray property to write- Throws:
IOException
- if an I/O error occurs
-
writeLongArray
Write a uniform LongArray property to the POF stream.Each element of the given LongArray must be an instance (or an array of instances) of one of the following:
- boolean[]
- byte[]
- char[]
- short[]
- int[]
- long[]
- float[]
- double[]
- Boolean
- Byte
- Char
- Short
- Integer
- Long
- BigInteger
- Float
- Double
RawQuad
- BigDecimal
Binary
- String
- Date
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
- Collection
LongArray
PortableObject
Otherwise, a
PofSerializer
for each element of the LongArray must be obtainable from thePofContext
associated with this PofWriter.Additionally, the type of each element must be equal to the specified class.
- Specified by:
writeLongArray
in interfacePofWriter
- Parameters:
iProp
- the property indexla
- the LongArray property to writeclz
- the class of all elements; must not be null- Throws:
IOException
- if an I/O error occurs
-
writeMap
Write a Map property to the POF stream.Each key and value of the given Map must be an instance (or an array of instances) of one of the following:
- boolean[]
- byte[]
- char[]
- short[]
- int[]
- long[]
- float[]
- double[]
- Boolean
- Byte
- Char
- Short
- Integer
- Long
- BigInteger
- Float
- Double
RawQuad
- BigDecimal
Binary
- String
- Date
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
- Collection
LongArray
PortableObject
Otherwise, a
PofSerializer
for each key and value of the Map must be obtainable from thePofContext
associated with this PofWriter.- Specified by:
writeMap
in interfacePofWriter
- Type Parameters:
K
- the key typeV
- the value type- Parameters:
iProp
- the property indexmap
- the Map property to write- Throws:
IOException
- if an I/O error occurs
-
writeMap
public <K,V> void writeMap(int iProp, Map<K, ? extends V> map, Class<? extends K> clzKey) throws IOExceptionWrite a uniform key Map property to the POF stream.Each key and value of the given Map must be an instance (or an array of instances) of one of the following:
- boolean[]
- byte[]
- char[]
- short[]
- int[]
- long[]
- float[]
- double[]
- Boolean
- Byte
- Char
- Short
- Integer
- Long
- BigInteger
- Float
- Double
RawQuad
- BigDecimal
Binary
- String
- Date
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
- Collection
LongArray
PortableObject
Otherwise, a
PofSerializer
for each key and value of the Map must be obtainable from thePofContext
associated with this PofWriter.Additionally, the type of each key must be equal to the specified class.
- Specified by:
writeMap
in interfacePofWriter
- Type Parameters:
K
- the key typeV
- the value type- Parameters:
iProp
- the property indexmap
- the Map property to writeclzKey
- the class of all keys; must not be null- Throws:
IOException
- if an I/O error occurs
-
writeMap
public <K,V> void writeMap(int iProp, Map<K, V> map, Class<? extends K> clzKey, Class<? extends V> clzValue) throws IOExceptionWrite a uniform Map property to the POF stream.Each key and value of the given Map must be an instance (or an array of instances) of one of the following:
- boolean[]
- byte[]
- char[]
- short[]
- int[]
- long[]
- float[]
- double[]
- Boolean
- Byte
- Char
- Short
- Integer
- Long
- BigInteger
- Float
- Double
RawQuad
- BigDecimal
Binary
- String
- Date
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
- Collection
LongArray
PortableObject
Otherwise, a
PofSerializer
for each key and value of the Map must be obtainable from thePofContext
associated with this PofWriter.Additionally, the type of each key and value must be equal to the specified key class and value class respectively.
- Specified by:
writeMap
in interfacePofWriter
- Type Parameters:
K
- the key typeV
- the value type- Parameters:
iProp
- the property indexmap
- the Map property to writeclzKey
- the class of all keys; must not be nullclzValue
- the class of all values; must not be null- Throws:
IOException
- if an I/O error occurs
-
writeOptionalInt
- Throws:
IOException
-
writeOptionalLong
- Throws:
IOException
-
writeOptionalDouble
- Throws:
IOException
-
writeOptional
- Throws:
IOException
-
getPofContext
Return the PofContext object used by this PofWriter to serialize user types to a POF stream.- Specified by:
getPofContext
in interfacePofWriter
- Returns:
- the PofContext object that contains user type meta-data
-
setPofContext
Configure the PofContext object used by this PofWriter to serialize user types to a POF stream.Note: this is an advanced method that should be used with care. For example, if this method is being used to switch to another PofContext mid-POF stream, it is important to eventually restore the original PofContext. For example:
PofContext ctxOrig = writer.getPofContext(); try { // switch to another PofContext PofContext ctxNew = ...; writer.setContext(ctxNew); // output POF data using the writer } finally { // restore the original PofContext writer.setPofContext(ctxOrig); }
- Specified by:
setPofContext
in interfacePofWriter
- Parameters:
ctx
- the new PofContext; must not be null
-
getUserTypeId
public int getUserTypeId()Determine the user type that is currently being written.- Specified by:
getUserTypeId
in interfacePofWriter
- Returns:
- the user type identifier, or -1 if the PofWriter is not currently writing a user type
-
getVersionId
public int getVersionId()Determine the version identifier of the user type that is currently being written.- Specified by:
getVersionId
in interfacePofWriter
- Returns:
- the integer version ID of the user type; always non-negative
-
setVersionId
public void setVersionId(int nVersionId) Set the version identifier of the user type that is currently being written.- Specified by:
setVersionId
in interfacePofWriter
- Parameters:
nVersionId
- the user type identifier; must be non-negative
-
createNestedPofWriter
Obtain a PofWriter that can be used to write a set of properties into a single property of the current user type. The returned PofWriter is only valid from the time that it is returned until the next call is made to this PofWriter.- Specified by:
createNestedPofWriter
in interfacePofWriter
- Parameters:
iProp
- the property index- Returns:
- a PofWriter whose contents are nested into a single property of this PofWriter
- Throws:
IOException
- if an I/O error occurs
-
createNestedPofWriter
Obtain a PofWriter that can be used to write a set of properties into a single property of the current user type. The returned PofWriter is only valid from the time that it is returned until the next call is made to this PofWriter.- Specified by:
createNestedPofWriter
in interfacePofWriter
- Parameters:
iProp
- the property indexnTypeId
- the type identifier of the nested property- Returns:
- a PofWriter whose contents are nested into a single property of this PofWriter
- Throws:
IOException
- if an I/O error occurs
-
writeRemainder
Write the remaining properties to the POF stream, terminating the writing of the current user type. As part of writing out a user type, this method must be called by the PofSerializer that is writing out the user type, or the POF stream will be corrupted.Calling this method terminates the current user type by writing a -1 to the POF stream after the last indexed property. Subsequent calls to the various writeXYZ methods of this interface will fail after this method is called.
- Specified by:
writeRemainder
in interfacePofWriter
- Parameters:
binProps
- a Binary object containing zero or more indexed properties in binary POF encoded form; may be null- Throws:
IOException
- if an I/O error occurs
-
getParentWriter
If this writer is contextually within a user type, obtain the writer which created this writer in order to write the user type.- Returns:
- the containing writer
-
beginProperty
Report that a POF property is about to be written to the POF stream.This method call will be followed by one or more separate calls to a "write" method and the property extent will then be terminated by a call to
endProperty(int)
.- Parameters:
iProp
- the index of the property being written- Throws:
IllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF streamIOException
- if an I/O error occurs
-
endProperty
protected void endProperty(int iProp) Signifies the termination of the current POF property.- Parameters:
iProp
- the index of the current property
-
onException
Called when an unexpected exception is caught while writing to the POF stream.If the given exception wraps an IOException, the IOException is unwrapped and rethrown; otherwise the given exception is rethrown.
- Parameters:
e
- the exception- Throws:
IOException
- the wrapped IOException, if the given exception is a wrapped IOException
-
fixNanos
Return aDate
which is suitable for POF serializationSimilar to
Timestamp
, POF requires that dates have positive sub-second values.- Parameters:
dt
- the Date object to check- Returns:
- the passed in Date if no conversion is necessary; otherwise the passed in Date as a Timestamp.
- Since:
- Coherence 3.7.1.13
-
getNanos
Extract the nanoseconds from the date. This number represents a fraction of a second in the passed-in date expressed with a nanosecond resolution.- Parameters:
dt
- the Date object to extract the nanoseconds from- Returns:
- the number of nanoseconds in the date
-
assertEqual
Assert that a class is equal to another class.- Parameters:
clz
- the expected class; must not be nullclzTest
- the class to test for equality; must not be null- Throws:
IllegalArgumentException
- if the second class is not equal to the first
-
getBufferOutput
Return the BufferOutput that this PofBufferWriter writes to.- Returns:
- the BufferOutput
-
getPofHandler
Return the WritingPofHandler used internally by this PofBufferWriter to write the POF stream.- Returns:
- the PofHandler
-
enableReference
public void enableReference()Ensure that reference support (necessary for cyclic dependencies) is enabled. -
isReferenceEnabled
public boolean isReferenceEnabled()Determine if reference support is enabled.- Returns:
- true iff reference support is enabled
-
isEvolvable
protected boolean isEvolvable()Determine if the object to be written is either Evolvable or part of an Evolvable object.- Returns:
- true iff the object to be written is Evolvable
-
setEvolvable
protected void setEvolvable(boolean fEvolvable) Set the Evolvable flag to indicate if the object to be written is Evolvable or part of an Evolvable object.- Parameters:
fEvolvable
- true iff the object to be written is Evolvable
-
main
-