public interface PofWriter
The serialized format of a POF user type is as follows:
PofReader
share a PofContext
which contains the necessary meta-data, including type identifier to Java type mappings.
The version identifier is used to support both backwards and forwards compatibility of serialized POF user types. Versioning of user types allows the addition of new properties to a user type, but not the replacement or removal of properties that existed in a previous version of the user type.
When a version v1 of a user type written by a PofWriter is read by a PofReader that supports version v2 of the same user type, the PofReader returns default values for the additional properties of the User Type that exist in v2 but do not exist in v1. Conversely, when a version v2 of a user type written by a PofWriter is read by a PofReader that supports version v1 of the same user type, the instance of user type v1 must store those additional opaque properties for later encoding. The PofReader enables the user type to store off the opaque properties in binary form (see PofReader.readRemainder()
). When the user type is re-encoded, it must be done so using the version identifier v2, since it is including the unaltered v2 properties. The opaque properties are subsequently included in the POF stream using the writeRemainder(com.tangosol.util.Binary)
method.
Following the version identifier is an ordered sequence of index/value pairs, each of which is composed of a property index encoded as non-negative integer value whose value is greater than the previous property index, and a property value encoded as a POF value. The user type is finally terminated with an illegal property index of -1.
Note: To read a property that was written using a PofWriter method, the corresponding read method on PofReader
must be used. For example, if a property was written using writeByteArray(int, byte[])
, PofReader.readByteArray(int)
must be used to read the property.
PofContext
, PofReader
Modifier and Type | Method and Description |
---|---|
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.
|
PofContext |
getPofContext()
Return the PofContext object used by this PofWriter to serialize user types to a 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.
|
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 a
Binary property to the POF stream. |
void |
writeBoolean(int iProp, boolean f)
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.
|
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.
|
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, Date dt)
Write a Date property to the POF stream in ISO8601 format.
|
void |
writeDate(int iProp, LocalDate dt)
Write a LocalDate 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 |
writeDateTime(int iProp, LocalDateTime dt)
Write a LocalDateTime 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 |
writeDateTimeWithZone(int iProp, Date dt)
Write a Date 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, Timestamp dt)
Write a Timestamp property to the POF stream in ISO8601 format.
|
default void |
writeDateTimeWithZone(int iProp, ZonedDateTime dt)
Write a ZonedDateTime property to the POF stream in ISO8601 format.
|
void |
writeDouble(int iProp, double dfl)
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.
|
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.
|
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.
|
void |
writeLongArray(int iProp, long[] an)
Write a long[] property to the POF stream.
|
<T> void |
writeLongArray(int iProp, LongArray<? extends T> la)
Write a LongArray property to the POF stream.
|
<T> void |
writeLongArray(int iProp, LongArray<T> la, Class<T> clz)
Write a uniform LongArray property to the POF stream.
|
<K,V> void |
writeMap(int iProp, Map<? extends K,? extends V> map)
Write a Map property to the POF stream.
|
<K,V> void |
writeMap(int iProp, Map<K,? extends V> map, Class<? extends K> clzKey)
Write a uniform key Map property to the POF stream.
|
<K,V> void |
writeMap(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.
|
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.
|
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, Date dt)
Write a Date 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, Timestamp dt)
Write a Timestamp 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.
|
void |
writeTimeWithZone(int iProp, OffsetTime dt)
Write a OffsetTime 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 writeBoolean(int iProp, boolean f) throws IOException
iProp
- the property indexf
- the boolean property value to writeIllegalArgumentException
- 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 occursvoid writeByte(int iProp, byte b) throws IOException
iProp
- the property indexb
- the byte property value to writeIllegalArgumentException
- 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 occursvoid writeChar(int iProp, char ch) throws IOException
iProp
- the property indexch
- the char property value to writeIllegalArgumentException
- 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 occursvoid writeShort(int iProp, short n) throws IOException
iProp
- the property indexn
- the short property value to writeIllegalArgumentException
- 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 occursvoid writeInt(int iProp, int n) throws IOException
iProp
- the property indexn
- the int property value to writeIllegalArgumentException
- 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 occursvoid writeLong(int iProp, long n) throws IOException
iProp
- the property indexn
- the long property value to writeIllegalArgumentException
- 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 occursvoid writeFloat(int iProp, float fl) throws IOException
iProp
- the property indexfl
- the float property value to writeIllegalArgumentException
- 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 occursvoid writeDouble(int iProp, double dfl) throws IOException
iProp
- the property indexdfl
- the double property value to writeIllegalArgumentException
- 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 occursvoid writeBooleanArray(int iProp, boolean[] af) throws IOException
iProp
- the property indexaf
- the boolean[] property value to writeIllegalArgumentException
- 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 occursvoid writeByteArray(int iProp, byte[] ab) throws IOException
iProp
- the property indexab
- the byte[] property value to writeIllegalArgumentException
- 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 occursvoid writeCharArray(int iProp, char[] ach) throws IOException
iProp
- the property indexach
- the char[] property value to writeIllegalArgumentException
- 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 occursvoid writeShortArray(int iProp, short[] an) throws IOException
iProp
- the property indexan
- the short[] property value to writeIllegalArgumentException
- 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 occursvoid writeIntArray(int iProp, int[] an) throws IOException
iProp
- the property indexan
- the int[] property value to writeIllegalArgumentException
- 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 occursvoid writeLongArray(int iProp, long[] an) throws IOException
iProp
- the property indexan
- the long[] property value to writeIllegalArgumentException
- 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 occursvoid writeFloatArray(int iProp, float[] afl) throws IOException
iProp
- the property indexafl
- the float[] property value to writeIllegalArgumentException
- 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 occursvoid writeDoubleArray(int iProp, double[] adfl) throws IOException
iProp
- the property indexadfl
- the double[] property value to writeIllegalArgumentException
- 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 occursvoid writeBigInteger(int iProp, BigInteger n) throws IOException
iProp
- the property indexn
- the BigInteger property value to writeIllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF streamIllegalStateException
- if the given BigInteger does not fit into 128 bitsIOException
- if an I/O error occursvoid writeRawQuad(int iProp, RawQuad qfl) throws IOException
iProp
- the property indexqfl
- the RawQuad property value to writeIllegalArgumentException
- 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 occursvoid writeBigDecimal(int iProp, BigDecimal dec) throws IOException
iProp
- the property indexdec
- the BigDecimal property value to writeIllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF streamIllegalStateException
- if the signed unscaled form of the given BigDecimal does not fit into 128 bitsIOException
- if an I/O error occursvoid writeBinary(int iProp, Binary bin) throws IOException
Binary
property to the POF stream.iProp
- the property indexbin
- the Binary property value to writeIllegalArgumentException
- 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 occursvoid writeString(int iProp, String s) throws IOException
iProp
- the property indexs
- the String property value to writeIllegalArgumentException
- 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 occursvoid writeDate(int iProp, Date dt) throws IOException
This method encodes the year, month and day information of the specified Date object. No time or timezone information is encoded.
iProp
- the property indexdt
- the Date property value to write in ISO8601 formatIllegalArgumentException
- 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 occursvoid writeDate(int iProp, LocalDate dt) throws IOException
This method encodes the year, month and day information of the specified LocalDate object. No time or timezone information is encoded.
iProp
- the property indexdt
- the LocalDate property value to write in ISO8601 formatIllegalArgumentException
- 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 occursvoid writeDateTime(int iProp, Date dt) throws IOException
This method encodes the year, month, day, hour, minute, second and millisecond information of the specified Date object. No timezone information is encoded.
iProp
- the property indexdt
- the Date property value to write in ISO8601 formatIllegalArgumentException
- 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 occursvoid writeDateTime(int iProp, LocalDateTime dt) throws IOException
This method encodes the year, month, day, hour, minute, second and millisecond information of the specified LocalDateTime object. No timezone information is encoded.
iProp
- the property indexdt
- the LocalDateTime property value to write in ISO8601 formatIllegalArgumentException
- 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 occursvoid writeDateTime(int iProp, Timestamp dt) throws IOException
This method encodes the year, month, day, hour, minute, second, millisecond and nanosecond information of the specified Timestamp object. No timezone information is encoded.
iProp
- the property indexdt
- the Timestamp property value to write in ISO8601 formatIllegalArgumentException
- 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 occursvoid writeDateTimeWithZone(int iProp, Date dt) throws IOException
This method encodes the year, month, day, hour, minute, second, millisecond and timezone information of the specified Date object.
iProp
- the property indexdt
- the Date property value to write in ISO8601 formatIllegalArgumentException
- 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 occursvoid writeDateTimeWithZone(int iProp, OffsetDateTime dt) throws IOException
This method encodes the year, month, day, hour, minute, second, millisecond and timezone information of the specified OffsetDateTime object.
iProp
- the property indexdt
- the OffsetDateTime property value to write in ISO8601 formatIllegalArgumentException
- 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 occursdefault void writeDateTimeWithZone(int iProp, ZonedDateTime dt) throws IOException
This method encodes the year, month, day, hour, minute, second, millisecond and timezone information of the specified ZonedDateTime object.
iProp
- the property indexdt
- the ZonedDateTime property value to write in ISO8601 formatIllegalArgumentException
- 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 occursvoid writeDateTimeWithZone(int iProp, Timestamp dt) throws IOException
This method encodes the year, month, day, hour, minute, second, millisecond, nanosecond and timezone information of the specified Timestamp object.
iProp
- the property indexdt
- the Timestamp property value to write in ISO8601 formatIllegalArgumentException
- 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 occursvoid writeTime(int iProp, Date dt) throws IOException
This method encodes the hour, minute, second and millisecond information of the specified Date object. No year, month, day or timezone information is encoded.
iProp
- the property indexdt
- the Date property value to write in ISO8601 formatIllegalArgumentException
- 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 occursvoid writeTime(int iProp, LocalTime dt) throws IOException
This method encodes the hour, minute, second and millisecond information of the specified LocalTime object. No year, month, day or timezone information is encoded.
iProp
- the property indexdt
- the LocalTime property value to write in ISO8601 formatIllegalArgumentException
- 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 occursvoid writeTime(int iProp, Timestamp dt) throws IOException
This method encodes the hour, minute, second, millisecond and nanosecond information of the specified Timestamp object.
iProp
- the property indexdt
- the Timestamp property value to write in ISO8601 formatIllegalArgumentException
- 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 occursvoid writeTimeWithZone(int iProp, Date dt) throws IOException
This method encodes the hour, minute, second, millisecond and timezone information of the specified Date object. No year, month or day information is encoded.
iProp
- the property indexdt
- the Date property value to write in ISO8601 formatIllegalArgumentException
- 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 occursvoid writeTimeWithZone(int iProp, OffsetTime dt) throws IOException
This method encodes the hour, minute, second, millisecond and timezone information of the specified OffsetTime object. No year, month or day information is encoded.
iProp
- the property indexdt
- the OffsetTime property value to write in ISO8601 formatIllegalArgumentException
- 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 occursvoid writeTimeWithZone(int iProp, Timestamp dt) throws IOException
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.
iProp
- the property indexdt
- the Timestamp property value to write in ISO8601 formatIllegalArgumentException
- 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 occursvoid writeRawDate(int iProp, RawDate date) throws IOException
iProp
- the property indexdate
- the RawDate property value to writeIllegalArgumentException
- 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 occursvoid writeRawTime(int iProp, RawTime time) throws IOException
iProp
- the property indextime
- the RawTime property value to writeIllegalArgumentException
- 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 occursvoid writeRawDateTime(int iProp, RawDateTime dt) throws IOException
iProp
- the property indexdt
- the RawDateTime property value to writeIllegalArgumentException
- 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 occursvoid writeRawYearMonthInterval(int iProp, RawYearMonthInterval interval) throws IOException
iProp
- the property indexinterval
- the RawYearMonthInterval property value to writeIllegalArgumentException
- 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 occursvoid writeRawTimeInterval(int iProp, RawTimeInterval interval) throws IOException
iProp
- the property indexinterval
- the RawTimeInterval property value to writeIllegalArgumentException
- 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 occursvoid writeRawDayTimeInterval(int iProp, RawDayTimeInterval interval) throws IOException
iProp
- the property indexinterval
- the RawDayTimeInterval property value to writeIllegalArgumentException
- 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 occursvoid writeObject(int iProp, Object o) throws IOException
The given object must be an instance of one of the following:
RawQuad
Binary
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
LongArray
PortableObject
Otherwise, a PofSerializer
for the object must be obtainable from the PofContext
associated with this PofWriter.
iProp
- the property indexo
- the Object property to writeIllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF stream; or if the given property cannot be encoded into a POF streamIOException
- if an I/O error occurs<T> void writeObjectArray(int iProp, T[] ao) throws IOException
Each element of the given array must be an instance (or an array of instances) of one of the following:
RawQuad
Binary
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
LongArray
PortableObject
Otherwise, a PofSerializer
for each element of the array must be obtainable from the PofContext
associated with this PofWriter.
iProp
- the property indexao
- the Object[] property to writeIllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF stream; or if the given property cannot be encoded into a POF streamIOException
- if an I/O error occurs<T> void writeObjectArray(int iProp, T[] ao, Class<? extends T> clz) throws IOException
Each element of the given array must be an instance (or an array of instances) of one of the following:
RawQuad
Binary
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
LongArray
PortableObject
Otherwise, a PofSerializer
for each element of the array must be obtainable from the PofContext
associated with this PofWriter.
Additionally, the type of each element must be equal to the specified class.
iProp
- the property indexao
- the Object[] property to writeclz
- the class of all elements; must not be nullIllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF stream; if the given property cannot be encoded into a POF stream; or if the type of one or more elements of the array is not equal to the specified classIOException
- if an I/O error occurs<T> void writeCollection(int iProp, Collection<? extends T> coll) throws IOException
Each element of the given Collection must be an instance (or an array of instances) of one of the following:
RawQuad
Binary
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
LongArray
PortableObject
Otherwise, a PofSerializer
for each element of the Collection must be obtainable from the PofContext
associated with this PofWriter.
iProp
- the property indexcoll
- the Collection property to writeIllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF stream; or if the given property cannot be encoded into a POF streamIOException
- if an I/O error occurs<T> void writeCollection(int iProp, Collection<? extends T> coll, Class<? extends T> clz) throws IOException
Each element of the given Collection must be an instance (or an array of instances) of one of the following:
RawQuad
Binary
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
LongArray
PortableObject
Otherwise, a PofSerializer
for each element of the Collection must be obtainable from the PofContext
associated with this PofWriter.
Additionally, the type of each element must be equal to the specified class.
iProp
- the property indexcoll
- the Collection property to writeclz
- the class of all elements; must not be nullIllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF stream; if the given property cannot be encoded into a POF stream; or if the type of one or more elements of the Collection is not equal to the specified classIOException
- if an I/O error occurs<T> void writeLongArray(int iProp, LongArray<? extends T> la) throws IOException
Each element of the given LongArray must be an instance (or an array of instances) of one of the following:
RawQuad
Binary
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
LongArray
PortableObject
Otherwise, a PofSerializer
for each element of the LongArray must be obtainable from the PofContext
associated with this PofWriter.
iProp
- the property indexla
- the LongArray property to writeIllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF stream; or if the given property cannot be encoded into a POF streamIOException
- if an I/O error occurs<T> void writeLongArray(int iProp, LongArray<T> la, Class<T> clz) throws IOException
Each element of the given LongArray must be an instance (or an array of instances) of one of the following:
RawQuad
Binary
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
LongArray
PortableObject
Otherwise, a PofSerializer
for each element of the LongArray must be obtainable from the PofContext
associated with this PofWriter.
Additionally, the type of each element must be equal to the specified class.
iProp
- the property indexla
- the LongArray property to writeclz
- the class of all elements; must not be nullIllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF stream; if the given property cannot be encoded into a POF stream; or if the type of one or more elements of the LongArray is not equal to the specified classIOException
- if an I/O error occurs<K,V> void writeMap(int iProp, Map<? extends K,? extends V> map) throws IOException
Each key and value of the given Map must be an instance (or an array of instances) of one of the following:
RawQuad
Binary
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
LongArray
PortableObject
Otherwise, a PofSerializer
for each key and value of the Map must be obtainable from the PofContext
associated with this PofWriter.
iProp
- the property indexmap
- the Map property to writeIllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF stream; or if the given property cannot be encoded into a POF streamIOException
- if an I/O error occurs<K,V> void writeMap(int iProp, Map<K,? extends V> map, Class<? extends K> clzKey) throws IOException
Each key and value of the given Map must be an instance (or an array of instances) of one of the following:
RawQuad
Binary
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
LongArray
PortableObject
Otherwise, a PofSerializer
for each key and value of the Map must be obtainable from the PofContext
associated with this PofWriter.
Additionally, the type of each key must be equal to the specified class.
iProp
- the property indexmap
- the Map property to writeclzKey
- the class of all keys; must not be nullIllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF stream; if the given property cannot be encoded into a POF stream; or if the type of one or more keys is not equal to the specified classIOException
- if an I/O error occurs<K,V> void writeMap(int iProp, Map<K,V> map, Class<? extends K> clzKey, Class<? extends V> clzValue) throws IOException
Each key and value of the given Map must be an instance (or an array of instances) of one of the following:
RawQuad
Binary
RawDate
RawTime
RawDateTime
RawYearMonthInterval
RawTimeInterval
RawDayTimeInterval
LongArray
PortableObject
Otherwise, a PofSerializer
for each key and value of the Map must be obtainable from the PofContext
associated with this PofWriter.
Additionally, the type of each key and value must be equal to the specified key class and value class respectively.
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 nullIllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF stream; if the given property cannot be encoded into a POF stream; or if the type of one or more keys or values of the Map is not equal to the specified key or value classIOException
- if an I/O error occursPofContext getPofContext()
void setPofContext(PofContext ctx)
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); }
ctx
- the new PofContext; must not be nullint getUserTypeId()
int getVersionId()
IllegalStateException
- if no user type is being writtenvoid setVersionId(int nVersionId)
nVersionId
- the user type identifier; must be non-negativeIllegalArgumentException
- if the given version ID is negativeIllegalStateException
- if no user type is being writtenPofWriter createNestedPofWriter(int iProp) throws IOException
iProp
- the property indexIllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF streamIllegalStateException
- if no user type is being writtenIOException
- if an I/O error occursPofWriter createNestedPofWriter(int iProp, int nTypeId) throws IOException
iProp
- the property indexnTypeId
- the type identifier of the nested propertyIllegalArgumentException
- if the property index is invalid, or is less than or equal to the index of the previous property written to the POF streamIllegalStateException
- if no user type is being writtenIOException
- if an I/O error occursvoid writeRemainder(Binary binProps) throws IOException
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.
binProps
- a Binary object containing zero or more indexed properties in binary POF encoded form; may be nullIllegalStateException
- if no user type is being writtenIOException
- if an I/O error occurs