Interface PofReader
-
- All Known Implementing Classes:
PofBufferReader
,PofBufferReader.UserTypeReader
public interface PofReader
The PofReader interface provides the capability of reading a set of non-primitive Java types ("user types") from a POF stream as an ordered sequence of indexed properties.See
PofWriter
for a complete description of the POF user type serialization format.- Since:
- Coherence 3.2
- Author:
- cp/jh 2006.07.13
- See Also:
PofContext
,PofWriter
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description PofReader
createNestedPofReader(int iProp)
Obtain a PofReader that can be used to read a set of properties from a single property of the current user type.PofContext
getPofContext()
Return the PofContext object used by this PofReader to deserialize user types from a POF stream.int
getUserTypeId()
Determine the user type that is currently being parsed.int
getVersionId()
Determine the version identifier of the user type that is currently being parsed.<T> T[]
readArray(int iProp, IntFunction<T[]> supplier)
Read an array of values.BigDecimal
readBigDecimal(int iProp)
Read a BigDecimal from the POF stream.BigInteger
readBigInteger(int iProp)
Read a BigInteger from the POF stream.Binary
readBinary(int iProp)
Read a Binary from the POF stream.boolean
readBoolean(int iProp)
Read a boolean property from the POF stream.boolean[]
readBooleanArray(int iProp)
Read a boolean[] property from the POF stream.byte
readByte(int iProp)
Read a byte property from the POF stream.byte[]
readByteArray(int iProp)
Read a byte[] property from the POF stream.char
readChar(int iProp)
Read a char property from the POF stream.char[]
readCharArray(int iProp)
Read a char[] property from the POF stream.<T,C extends Collection<T>>
CreadCollection(int iProp, C coll)
Read a Collection of object values from the POF stream.Date
readDate(int iProp)
Read a java.util.Date from the POF stream.double
readDouble(int iProp)
Read a double property from the POF stream.double[]
readDoubleArray(int iProp)
Read a double[] property from the POF stream.float
readFloat(int iProp)
Read a float property from the POF stream.float[]
readFloatArray(int iProp)
Read a float[] property from the POF stream.int
readInt(int iProp)
Read a int property from the POF stream.int[]
readIntArray(int iProp)
Read a int[] property from the POF stream.LocalDate
readLocalDate(int iProp)
Read a java.time.LocalDate from the POF stream.LocalDateTime
readLocalDateTime(int iProp)
Read a java.time.LocalDateTime from the POF stream.LocalTime
readLocalTime(int iProp)
Read a java.time.LocalTime from the POF stream.long
readLong(int iProp)
Read a long property from the POF stream.long[]
readLongArray(int iProp)
Read a long[] property from the POF stream.<T> LongArray<T>
readLongArray(int iProp, LongArray<T> array)
Read a LongArray of object values.<K,V,M extends Map<K,V>>
MreadMap(int iProp, M map)
Read a Map of key/value pairs from the POF stream.<T> T
readObject(int iProp)
Read a property of any type, including a user type, from the POF stream.Object[]
readObjectArray(int iProp, Object[] ao)
Deprecated.OffsetDateTime
readOffsetDateTime(int iProp)
Read a java.time.OffsetDateTime from the POF stream.OffsetTime
readOffsetTime(int iProp)
Read a java.time.OffsetTime from the POF stream.RawDate
readRawDate(int iProp)
Read a RawDate from the POF stream.RawDateTime
readRawDateTime(int iProp)
Read a RawDateTime from the POF stream.RawDayTimeInterval
readRawDayTimeInterval(int iProp)
Read a RawDayTimeInterval from the POF stream.RawQuad
readRawQuad(int iProp)
Read a RawQuad from the POF stream.RawTime
readRawTime(int iProp)
Read a RawTime from the POF stream.RawTimeInterval
readRawTimeInterval(int iProp)
Read a RawTimeInterval from the POF stream.RawYearMonthInterval
readRawYearMonthInterval(int iProp)
Read a RawYearMonthInterval from the POF stream.Binary
readRemainder()
Read all remaining indexed properties of the current user type from the POF stream.short
readShort(int iProp)
Read a short property from the POF stream.short[]
readShortArray(int iProp)
Read a short[] property from the POF stream.String
readString(int iProp)
Read a String from the POF stream.default ZonedDateTime
readZonedDateTime(int iProp)
Read a java.time.ZonedDateTime from the POF stream.void
registerIdentity(Object o)
Register an identity for a newly created user type instance.void
setPofContext(PofContext ctx)
Configure the PofContext object used by this PofReader to deserialize user types from a POF stream.
-
-
-
Method Detail
-
readBoolean
boolean readBoolean(int iProp) throws IOException
Read a boolean property from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the boolean property value, or zero if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readByte
byte readByte(int iProp) throws IOException
Read a byte property from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the byte property value, or zero if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readChar
char readChar(int iProp) throws IOException
Read a char property from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the char property value, or zero if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readShort
short readShort(int iProp) throws IOException
Read a short property from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the short property value, or zero if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readInt
int readInt(int iProp) throws IOException
Read a int property from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the int property value, or zero if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readLong
long readLong(int iProp) throws IOException
Read a long property from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the long property value, or zero if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readFloat
float readFloat(int iProp) throws IOException
Read a float property from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the float property value, or zero if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readDouble
double readDouble(int iProp) throws IOException
Read a double property from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the double property value, or zero if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readBooleanArray
boolean[] readBooleanArray(int iProp) throws IOException
Read a boolean[] property from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the boolean[] property value; may be null
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readByteArray
byte[] readByteArray(int iProp) throws IOException
Read a byte[] property from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the byte[] property value; may be null
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readCharArray
char[] readCharArray(int iProp) throws IOException
Read a char[] property from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the char[] property value; may be null
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readShortArray
short[] readShortArray(int iProp) throws IOException
Read a short[] property from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the short[] property value; may be null
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readIntArray
int[] readIntArray(int iProp) throws IOException
Read a int[] property from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the int[] property value; may be null
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readLongArray
long[] readLongArray(int iProp) throws IOException
Read a long[] property from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the long[] property value; may be null
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readFloatArray
float[] readFloatArray(int iProp) throws IOException
Read a float[] property from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the float[] property value; may be null
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readDoubleArray
double[] readDoubleArray(int iProp) throws IOException
Read a double[] property from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the double[] property value; may be null
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readBigInteger
BigInteger readBigInteger(int iProp) throws IOException
Read a BigInteger from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the BigInteger property value, or null if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readRawQuad
RawQuad readRawQuad(int iProp) throws IOException
Read a RawQuad from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the RawQuad property value, or null if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readBigDecimal
BigDecimal readBigDecimal(int iProp) throws IOException
Read a BigDecimal from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the BigDecimal property value, or null if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readBinary
Binary readBinary(int iProp) throws IOException
Read a Binary from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the Binary property value, or null if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readString
String readString(int iProp) throws IOException
Read a String from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the String property value, or null if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readDate
Date readDate(int iProp) throws IOException
Read a java.util.Date from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the Date property value, or null if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readLocalDate
LocalDate readLocalDate(int iProp) throws IOException
Read a java.time.LocalDate from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the LocalDate property value, or null if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readLocalDateTime
LocalDateTime readLocalDateTime(int iProp) throws IOException
Read a java.time.LocalDateTime from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the LocalDateTime property value, or null if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readLocalTime
LocalTime readLocalTime(int iProp) throws IOException
Read a java.time.LocalTime from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the LocalTime property value, or null if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readOffsetDateTime
OffsetDateTime readOffsetDateTime(int iProp) throws IOException
Read a java.time.OffsetDateTime from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the OffsetDateTime property value, or null if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readOffsetTime
OffsetTime readOffsetTime(int iProp) throws IOException
Read a java.time.OffsetTime from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the OffsetTime property value, or null if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readZonedDateTime
default ZonedDateTime readZonedDateTime(int iProp) throws IOException
Read a java.time.ZonedDateTime from the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the ZonedDateTime property value, or null if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readRawDate
RawDate readRawDate(int iProp) throws IOException
Read a RawDate from the POF stream. TheRawDate
class contains the raw date information that was carried in the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the RawDate property value, or null if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readRawTime
RawTime readRawTime(int iProp) throws IOException
Read a RawTime from the POF stream. TheRawTime
class contains the raw time information that was carried in the POF stream, including raw timezone information.- Parameters:
iProp
- the property index to read- Returns:
- the RawTime property value, or null if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readRawDateTime
RawDateTime readRawDateTime(int iProp) throws IOException
Read a RawDateTime from the POF stream. TheRawDateTime
class contains the raw date and time information that was carried in the POF stream, including raw timezone information.- Parameters:
iProp
- the property index to read- Returns:
- the RawDateTime property value, or null if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readRawYearMonthInterval
RawYearMonthInterval readRawYearMonthInterval(int iProp) throws IOException
Read a RawYearMonthInterval from the POF stream. TheRawYearMonthInterval
class contains the raw year-month interval information that was carried in the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the RawYearMonthInterval property value, or null if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readRawTimeInterval
RawTimeInterval readRawTimeInterval(int iProp) throws IOException
Read a RawTimeInterval from the POF stream. TheRawTimeInterval
class contains the raw time interval information that was carried in the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the RawTimeInterval property value, or null if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readRawDayTimeInterval
RawDayTimeInterval readRawDayTimeInterval(int iProp) throws IOException
Read a RawDayTimeInterval from the POF stream. TheRawDayTimeInterval
class contains the raw year-month interval information that was carried in the POF stream.- Parameters:
iProp
- the property index to read- Returns:
- the RawDayTimeInterval property value, or null if no value was available in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readObject
<T> T readObject(int iProp) throws IOException
Read a property of any type, including a user type, from the POF stream.- Type Parameters:
T
- the object type- Parameters:
iProp
- the property index to read- Returns:
- the Object value; may be null
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readObjectArray
@Deprecated Object[] readObjectArray(int iProp, Object[] ao) throws IOException
Deprecated.Read an array of object values.- Parameters:
iProp
- the property index to readao
- the optional array to use to store the values, or to use as a typed template for creating an array to store the values, following the documentation forCollection.toArray()
- Returns:
- an array of object values, or null if no array is passed and there is no array data in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readArray
<T> T[] readArray(int iProp, IntFunction<T[]> supplier) throws IOException
Read an array of values.- Type Parameters:
T
- the value type- Parameters:
iProp
- the property index to readsupplier
- the supplier to use to create the array, typically an array constructor reference (i.e.String[]::new
)- Returns:
- an array of object values, or an empty array if there is no array data in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readLongArray
<T> LongArray<T> readLongArray(int iProp, LongArray<T> array) throws IOException
Read a LongArray of object values.- Type Parameters:
T
- the object value type- Parameters:
iProp
- the property index to readarray
- the optional LongArray object to use to store the values- Returns:
- a LongArray of object values, or null if no LongArray is passed and there is no array data in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readCollection
<T,C extends Collection<T>> C readCollection(int iProp, C coll) throws IOException
Read a Collection of object values from the POF stream.- Type Parameters:
T
- the object value typeC
- the collection type- Parameters:
iProp
- the property index to readcoll
- the optional Collection to use to store the values- Returns:
- a Collection of object values, or null if no Collection is passed and there is no collection data in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
readMap
<K,V,M extends Map<K,V>> M readMap(int iProp, M map) throws IOException
Read a Map of key/value pairs from the POF stream.- Type Parameters:
K
- the key typeV
- the value typeM
- the map type- Parameters:
iProp
- the property index to readmap
- the optional Map to initialize- Returns:
- a Map of key/value pairs object values, or null if no Map is passed and there is no key/value data in the POF stream
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired propertyIOException
- if an I/O error occurs
-
getPofContext
PofContext getPofContext()
Return the PofContext object used by this PofReader to deserialize user types from a POF stream.- Returns:
- the PofContext object that contains user type meta-data
-
setPofContext
void setPofContext(PofContext ctx)
Configure the PofContext object used by this PofReader to deserialize user types from 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 = reader.getPofContext(); try { // switch to another PofContext PofContext ctxNew = ...; reader.setContext(ctxNew); // read POF data using the reader } finally { // restore the original PofContext reader.setPofContext(ctxOrig); }
- Parameters:
ctx
- the new PofContext; must not be null
-
getUserTypeId
int getUserTypeId()
Determine the user type that is currently being parsed.- Returns:
- the user type information, or -1 if the PofReader is not currently parsing a user type
-
getVersionId
int getVersionId()
Determine the version identifier of the user type that is currently being parsed.- Returns:
- the integer version ID read from the POF stream; always non-negative
- Throws:
IllegalStateException
- if no user type is being parsed
-
registerIdentity
void registerIdentity(Object o)
Register an identity for a newly created user type instance.If identity/reference types are enabled, an identity is used to uniquely identify a user type instance within a POF stream. The identity immediately proceeds the instance value in the POF stream and can be used later in the stream to reference the instance.
PofSerializer implementations must call this method with the user type instance instantiated during deserialization prior to reading any properties of the instance which are user type instances themselves.
- Parameters:
o
- the object to register the identity for- Since:
- Coherence 3.7.1
- See Also:
PofSerializer.deserialize(PofReader)
-
createNestedPofReader
PofReader createNestedPofReader(int iProp) throws IOException
Obtain a PofReader that can be used to read a set of properties from a single property of the current user type. The returned PofReader is only valid from the time that it is returned until the next call is made to this PofReader.- Parameters:
iProp
- the property index to read from- Returns:
- a PofReader that reads its contents from a single property of this PofReader
- Throws:
IllegalStateException
- if the POF stream has already advanced past the desired property or if no user type is being parsed.IOException
- if an I/O error occurs- Since:
- Coherence 3.6
-
readRemainder
Binary readRemainder() throws IOException
Read all remaining indexed properties of the current user type from the POF stream. As part of reading in a user type, this method must be called by the PofSerializer that is reading the user type, or the read position within the POF stream will be corrupted.Subsequent calls to the various readXYZ methods of this interface will fail after this method is called.
- Returns:
- a Binary object containing zero or more indexed properties in binary POF encoded form
- Throws:
IllegalStateException
- if no user type is being parsedIOException
- if an I/O error occurs
-
-