Class PofBufferWriter
- java.lang.Object
-
- com.tangosol.util.Base
-
- com.tangosol.io.pof.PofHelper
-
- com.tangosol.io.pof.PofBufferWriter
-
- All Implemented Interfaces:
PofConstants
,PofWriter
- Direct Known Subclasses:
PofBufferWriter.UserTypeWriter
public class PofBufferWriter extends PofHelper implements PofWriter
PofWriter
implementation that writes POF-encoded data to aBufferOutput
.- Since:
- Coherence 3.2
- Author:
- jh 2006.07.11
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
PofBufferWriter.ReferenceLibrary
A "library" of object references and their corresponding identities in the POF stream.static class
PofBufferWriter.UserTypeWriter
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
Fields Modifier and Type Field Description protected PofContext
m_ctx
The PofContext used by this PofBufferWriter to serialize user types.protected boolean
m_fEvolvable
Indicate if the object to be written is either Evolvable or part of an Evolvable object.protected WritingPofHandler
m_handler
The WritingPofHandler used to write a POF stream.protected WriteBuffer.BufferOutput
m_out
The BufferOutput object that the PofBufferWriter writes to.protected PofBufferWriter.ReferenceLibrary
m_refs
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
Constructors Constructor Description PofBufferWriter(WritingPofHandler handler, PofContext ctx)
Construct a new PofBufferWriter that will write a POF stream using the passed WritingPofHandler.PofBufferWriter(WriteBuffer.BufferOutput out, PofContext ctx)
Construct a new PofBufferWriter that will write a POF stream to the passed BufferOutput object.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected 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.PofWriter
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.PofWriter
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
enableReference()
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
fixNanos(Date dt)
Return aDate
which is suitable for POF serializationprotected WriteBuffer.BufferOutput
getBufferOutput()
Return the BufferOutput that this PofBufferWriter writes to.protected static int
getNanos(Date dt)
Extract the nanoseconds from the date.protected PofBufferWriter
getParentWriter()
If this writer is contextually within a user type, obtain the writer which created this writer in order to write the user type.PofContext
getPofContext()
Return the PofContext object used by this PofWriter to serialize user types to a POF stream.protected WritingPofHandler
getPofHandler()
Return the WritingPofHandler used internally by this PofBufferWriter to write the POF stream.int
getUserTypeId()
Determine the user type that is currently being written.int
getVersionId()
Determine the version identifier of the user type that is currently being written.protected boolean
isEvolvable()
Determine if the object to be written is either Evolvable or part of an Evolvable object.boolean
isReferenceEnabled()
Determine if reference support is enabled.static void
main(String[] args)
protected void
onException(Exception e)
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
writeDate(int iProp, LocalDate dt)
Write a LocalDate property to the POF stream in ISO8601 format.void
writeDate(int iProp, Date dt)
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>
voidwriteMap(int iProp, Map<? extends K,? extends V> map)
Write a Map property to the POF stream.<K,V>
voidwriteMap(int iProp, Map<K,? extends V> map, Class<? extends K> clzKey)
Write a uniform key Map property to the POF stream.<K,V>
voidwriteMap(int iProp, Map<K,V> map, Class<? extends K> clzKey, Class<? extends V> clzValue)
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
writeTime(int iProp, Timestamp dt)
Write a Timestamp property to the POF stream in ISO8601 format.void
writeTime(int iProp, LocalTime dt)
Write a LocalTime property to the POF stream in ISO8601 format.void
writeTime(int iProp, Date dt)
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 Detail
-
m_out
protected WriteBuffer.BufferOutput m_out
The BufferOutput object that the PofBufferWriter writes to.
-
m_ctx
protected PofContext m_ctx
The PofContext used by this PofBufferWriter to serialize user types.
-
m_fEvolvable
protected boolean m_fEvolvable
Indicate if the object to be written is either Evolvable or part of an Evolvable object.
-
m_handler
protected WritingPofHandler m_handler
The WritingPofHandler used to write a POF stream.
-
m_refs
protected PofBufferWriter.ReferenceLibrary m_refs
If references are used, then this is the ReferenceLibrary.
-
-
Constructor Detail
-
PofBufferWriter
public PofBufferWriter(WriteBuffer.BufferOutput out, PofContext ctx)
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
public PofBufferWriter(WritingPofHandler handler, PofContext ctx)
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 Detail
-
writeBoolean
public void writeBoolean(int iProp, boolean f) throws IOException
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
protected void writeBoolean(int iProp, boolean f, boolean fReferenceable) throws IOException
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
public void writeByte(int iProp, byte b) throws IOException
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
protected void writeByte(int iProp, byte b, boolean fReferenceable) throws IOException
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
public void writeChar(int iProp, char ch) throws IOException
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
protected void writeChar(int iProp, char ch, boolean fReferenceable) throws IOException
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
public void writeShort(int iProp, short n) throws IOException
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
protected void writeShort(int iProp, short n, boolean fReferenceable) throws IOException
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
public void writeInt(int iProp, int n) throws IOException
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
protected void writeInt(int iProp, int n, boolean fReferenceable) throws IOException
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
public void writeLong(int iProp, long n) throws IOException
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
protected void writeLong(int iProp, long n, boolean fReferenceable) throws IOException
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
public void writeFloat(int iProp, float fl) throws IOException
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
protected void writeFloat(int iProp, float fl, boolean fReferenceable) throws IOException
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
public void writeDouble(int iProp, double dfl) throws IOException
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
protected void writeDouble(int iProp, double dfl, boolean fReferenceable) throws IOException
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
public void writeBooleanArray(int iProp, boolean[] af) throws IOException
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
public void writeByteArray(int iProp, byte[] ab) throws IOException
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
public void writeCharArray(int iProp, char[] ach) throws IOException
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
public void writeShortArray(int iProp, short[] an) throws IOException
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
public void writeIntArray(int iProp, int[] an) throws IOException
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
public void writeLongArray(int iProp, long[] an) throws IOException
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
public void writeFloatArray(int iProp, float[] afl) throws IOException
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
public void writeDoubleArray(int iProp, double[] adfl) throws IOException
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
public void writeBigInteger(int iProp, BigInteger n) throws IOException
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
public void writeRawQuad(int iProp, RawQuad qfl) throws IOException
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
public void writeBigDecimal(int iProp, BigDecimal dec) throws IOException
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
public void writeBinary(int iProp, Binary bin) throws IOException
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
public void writeString(int iProp, String s) throws IOException
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
public void writeDate(int iProp, Date dt) throws IOException
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
public void writeDate(int iProp, LocalDate dt) throws IOException
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
public void writeDateTime(int iProp, Date dt) throws IOException
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
public void writeDateTime(int iProp, LocalDateTime dt) throws IOException
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
public void writeDateTime(int iProp, Timestamp dt) throws IOException
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
public void writeDateTimeWithZone(int iProp, Date dt) throws IOException
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
public void writeDateTimeWithZone(int iProp, OffsetDateTime dt) throws IOException
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
public void writeDateTimeWithZone(int iProp, Timestamp dt) throws IOException
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
public void writeTime(int iProp, Date dt) throws IOException
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
public void writeTime(int iProp, LocalTime dt) throws IOException
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
public void writeTime(int iProp, Timestamp dt) throws IOException
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
public void writeTimeWithZone(int iProp, Date dt) throws IOException
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
public void writeTimeWithZone(int iProp, OffsetTime dt) throws IOException
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
public void writeTimeWithZone(int iProp, Timestamp dt) throws IOException
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
public void writeRawDate(int iProp, RawDate date) throws IOException
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
public void writeRawTime(int iProp, RawTime time) throws IOException
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
public void writeRawDateTime(int iProp, RawDateTime dt) throws IOException
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
public void writeRawYearMonthInterval(int iProp, RawYearMonthInterval interval) throws IOException
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
public void writeRawTimeInterval(int iProp, RawTimeInterval interval) throws IOException
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
public void writeRawDayTimeInterval(int iProp, RawDayTimeInterval interval) throws IOException
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
public void writeObject(int iProp, Object o) throws IOException
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
protected void writeUserType(int iProp, Object o) throws IOException
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
public <T> void writeObjectArray(int iProp, T[] ao) throws IOException
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
public <T> void writeObjectArray(int iProp, T[] ao, Class<? extends T> clz) throws IOException
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
public <T> void writeCollection(int iProp, Collection<? extends T> coll) throws IOException
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
public void writeLongArray(int iProp, LongArray la) throws IOException
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
public void writeLongArray(int iProp, LongArray la, Class clz) throws IOException
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
public <K,V> void writeMap(int iProp, Map<? extends K,? extends V> map) throws IOException
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 IOException
Write 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 IOException
Write 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
public void writeOptionalInt(int iProp, OptionalInt n) throws IOException
- Throws:
IOException
-
writeOptionalLong
public void writeOptionalLong(int iProp, OptionalLong n) throws IOException
- Throws:
IOException
-
writeOptionalDouble
public void writeOptionalDouble(int iProp, OptionalDouble n) throws IOException
- Throws:
IOException
-
writeOptional
public <T> void writeOptional(int iProp, Optional<T> o) throws IOException
- Throws:
IOException
-
getPofContext
public PofContext 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
public void setPofContext(PofContext ctx)
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
public PofWriter createNestedPofWriter(int iProp) throws IOException
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
public PofWriter createNestedPofWriter(int iProp, int nTypeId) throws IOException
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
public void writeRemainder(Binary binProps) throws IOException
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
protected PofBufferWriter 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
protected void beginProperty(int iProp) throws IOException
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
protected void onException(Exception e) throws IOException
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
protected static Date fixNanos(Date dt)
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
protected static int getNanos(Date dt)
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
protected static void assertEqual(Class clz, Class clzTest)
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
protected WriteBuffer.BufferOutput getBufferOutput()
Return the BufferOutput that this PofBufferWriter writes to.- Returns:
- the BufferOutput
-
getPofHandler
protected WritingPofHandler 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
public static void main(String[] args)
-
-