Skip navigation links

Oracle® Coherence Java API Reference
Release 3.7.0.0

E18683-01


com.tangosol.io.pof
Class PofBufferWriter.UserTypeWriter

java.lang.Object
  extended by com.tangosol.util.Base
      extended by com.tangosol.io.pof.PofHelper
          extended by com.tangosol.io.pof.PofBufferWriter
              extended by com.tangosol.io.pof.PofBufferWriter.UserTypeWriter

All Implemented Interfaces:
PofConstants, PofWriter
Enclosing class:
PofBufferWriter

public static class PofBufferWriter.UserTypeWriter
extends PofBufferWriter

The UserTypeWriter implementation is a contextually-aware PofWriter whose purpose is to write the properties of a value of a specified user type. The "contextual awareness" refers to the fact that the UserTypeWriter maintains state about the type identifier, the PofWriter's property index position within the user type value, and a PofContext that may differ from the PofContext that provided the PofSerializer which is using this UserTypeWriter to serialize a user type.


Nested Class Summary

 

Nested classes/interfaces inherited from class com.tangosol.io.pof.PofBufferWriter
PofBufferWriter.ReferenceLibrary, PofBufferWriter.UserTypeWriter

 

Nested classes/interfaces inherited from class com.tangosol.io.pof.PofHelper
PofHelper.ReadableEntrySetMap, PofHelper.WriteableEntrySetMap

 

Field Summary
protected  WritingPofHandler.Complex m_complex
          The Complex value that corresponds to the user type that is being written.
protected  boolean m_fUserTypeBegin
          True iff the type and version identifier of the user type was written to the POF stream.
protected  boolean m_fUserTypeEnd
          True iff the user type was written to the POF stream.
protected  int m_iPrevProp
          The index of the last property written to the POF stream or -1 if the first property has yet to be written.
protected  int m_iProp
          The index of the user type being written.
protected  int m_nId
          The identity of the object to encode, or -1 if the identity shouldn't be encoded in the POF stream
protected  int m_nTypeId
          The type identifier of the user type that is being written.
protected  int m_nVersionId
          The version identifier of the user type that is being written.
protected  PofBufferWriter.UserTypeWriter m_writerNested
          The currently open nested writer, if any.

 

Fields inherited from class com.tangosol.io.pof.PofBufferWriter
m_ctx, m_handler, m_out, m_refs

 

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 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_LONG, J_LONG_ARRAY, J_MAP, J_NULL, J_OBJECT_ARRAY, 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, 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
PofBufferWriter.UserTypeWriter(PofBufferWriter parent, WriteBuffer.BufferOutput out, PofContext ctx, int nTypeId, int iProp)
          Construct a UserTypeWriter for writing the property values of a user type.
PofBufferWriter.UserTypeWriter(PofBufferWriter parent, WritingPofHandler handler, PofContext ctx, int nTypeId, int iProp)
          Construct a UserTypeWriter for writing the property values of a user type.
PofBufferWriter.UserTypeWriter(PofBufferWriter parent, WritingPofHandler handler, PofContext ctx, int nTypeId, int iProp, int nId)
          Construct a UserTypeWriter for writing the property values of a user type.
PofBufferWriter.UserTypeWriter(WriteBuffer.BufferOutput out, PofContext ctx, int nTypeId, int iProp)
          Construct a UserTypeWriter for writing the property values of a user type.
PofBufferWriter.UserTypeWriter(WritingPofHandler handler, PofContext ctx, int nTypeId, int iProp)
          Construct a UserTypeWriter for writing the property values of a user type.

 

Method Summary
protected  void beginProperty(int iProp)
          Report that a POF property is about to be written to the POF stream.
protected  void closeNested()
          Notify the UserTypeWriter that it is being "closed".
 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.
 void enableReferences()
          Ensure that references (support for cyclic dependencies) are enabled.
protected  void endProperty(int iProp)
          Signifies the termination of the current POF property.
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.
 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  void onException(java.lang.Exception e)
          Called when an unexpected exception is caught while writing to the POF stream.
 void setVersionId(int nVersionId)
          Set the version identifier of the user type that is currently being written.
 void writeRemainder(Binary binProps)
          Write the remaining properties to the POF stream, terminating the writing of the currrent user type.
protected  void writeUserTypeInfo()
          Write out the type and version identifiers of the user type to the POF stream, if they haven't already been written.

 

Methods inherited from class com.tangosol.io.pof.PofBufferWriter
assertEqual, getBufferOutput, getNanos, getPofContext, getPofHandler, setPofContext, writeBigDecimal, writeBigInteger, writeBinary, writeBoolean, writeBoolean, writeBooleanArray, writeByte, writeByte, writeByteArray, writeChar, writeChar, writeCharArray, writeCollection, writeCollection, writeDate, writeDateTime, writeDateTime, writeDateTimeWithZone, writeDateTimeWithZone, writeDouble, writeDouble, writeDoubleArray, writeFloat, writeFloat, writeFloatArray, writeInt, writeInt, writeIntArray, writeLong, writeLong, writeLongArray, writeLongArray, writeLongArray, writeMap, writeMap, writeMap, writeObject, writeObjectArray, writeObjectArray, writeRawDate, writeRawDateTime, writeRawDayTimeInterval, writeRawQuad, writeRawTime, writeRawTimeInterval, writeRawYearMonthInterval, writeShort, writeShort, writeShortArray, writeString, writeTime, writeTime, writeTimeWithZone, writeTimeWithZone, writeUserType

 

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, readQuad, readRawDate, readRawTime, resizeArray, skipPackedInts, skipUniformValue, skipValue, writeBigDecimal, writeBigInteger, writeDate, writeTime

 

Field Detail

m_nTypeId

protected int m_nTypeId
The type identifier of the user type that is being written.

m_nVersionId

protected int m_nVersionId
The version identifier of the user type that is being written.

m_iProp

protected int m_iProp
The index of the user type being written.

m_nId

protected int m_nId
The identity of the object to encode, or -1 if the identity shouldn't be encoded in the POF stream

m_iPrevProp

protected int m_iPrevProp
The index of the last property written to the POF stream or -1 if the first property has yet to be written.

m_fUserTypeBegin

protected boolean m_fUserTypeBegin
True iff the type and version identifier of the user type was written to the POF stream.

m_fUserTypeEnd

protected boolean m_fUserTypeEnd
True iff the user type was written to the POF stream.

m_complex

protected WritingPofHandler.Complex m_complex
The Complex value that corresponds to the user type that is being written.

m_writerNested

protected PofBufferWriter.UserTypeWriter m_writerNested
The currently open nested writer, if any.

Constructor Detail

PofBufferWriter.UserTypeWriter

public PofBufferWriter.UserTypeWriter(WriteBuffer.BufferOutput out,
                                      PofContext ctx,
                                      int nTypeId,
                                      int iProp)
Construct a UserTypeWriter for writing the property values of a user type.
Parameters:
out - the BufferOutput object to write to; must not be null
ctx - the PofContext to use for writing the user type property values within the user type that this writer will be writing
nTypeId - the type identifier of the user type; must be non-negative
iProp - the index of the user type being written

PofBufferWriter.UserTypeWriter

public PofBufferWriter.UserTypeWriter(PofBufferWriter parent,
                                      WriteBuffer.BufferOutput out,
                                      PofContext ctx,
                                      int nTypeId,
                                      int iProp)
Construct a UserTypeWriter for writing the property values of a user type.
Parameters:
parent - the containing PofBufferWriter
out - the BufferOutput object to write to; must not be null
ctx - the PofContext to use for writing the user type property values within the user type that this writer will be writing
nTypeId - the type identifier of the user type; must be non-negative
iProp - the index of the user type being written

PofBufferWriter.UserTypeWriter

public PofBufferWriter.UserTypeWriter(WritingPofHandler handler,
                                      PofContext ctx,
                                      int nTypeId,
                                      int iProp)
Construct a UserTypeWriter for writing the property values of a user type.
Parameters:
handler - the WritingPofHandler used to write user type data (except for the user type id itself, which is passed as a constructor argument)
ctx - the PofContext to use for writing the user type property values within the user type that this writer will be writing
nTypeId - the type identifier of the user type; must be non-negative
iProp - the index of the user type being written

PofBufferWriter.UserTypeWriter

public PofBufferWriter.UserTypeWriter(PofBufferWriter parent,
                                      WritingPofHandler handler,
                                      PofContext ctx,
                                      int nTypeId,
                                      int iProp)
Construct a UserTypeWriter for writing the property values of a user type.
Parameters:
parent - the containing PofBufferWriter
handler - the WritingPofHandler used to write user type data (except for the user type id itself, which is passed as a constructor argument)
ctx - the PofContext to use for writing the user type property values within the user type that this writer will be writing
nTypeId - the type identifier of the user type; must be non-negative
iProp - the index of the user type being written

PofBufferWriter.UserTypeWriter

public PofBufferWriter.UserTypeWriter(PofBufferWriter parent,
                                      WritingPofHandler handler,
                                      PofContext ctx,
                                      int nTypeId,
                                      int iProp,
                                      int nId)
Construct a UserTypeWriter for writing the property values of a user type.
Parameters:
parent - the containing PofBufferWriter
handler - the WritingPofHandler used to write user type data (except for the user type id itself, which is passed as a constructor argument)
ctx - the PofContext to use for writing the user type property values within the user type that this writer will be writing
nTypeId - the type identifier of the user type; must be non-negative
iProp - the index of the user type being written
nId - the identity of the object to encode, or -1 if the identity shouldn't be encoded in the POF stream

Method Detail

getUserTypeId

public int getUserTypeId()
Determine the user type that is currently being written.
Specified by:
getUserTypeId in interface PofWriter
Overrides:
getUserTypeId in class PofBufferWriter
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 interface PofWriter
Overrides:
getVersionId in class PofBufferWriter
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 interface PofWriter
Overrides:
setVersionId in class PofBufferWriter
Parameters:
nVersionId - the user type identifier; must be non-negative

createNestedPofWriter

public PofWriter createNestedPofWriter(int iProp)
                                throws java.io.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 interface PofWriter
Overrides:
createNestedPofWriter in class PofBufferWriter
Parameters:
iProp - the property index
Returns:
a PofWriter whose contents are nested into a single property of this PofWriter
Throws:
java.io.IOException - if an I/O error occurs

writeRemainder

public void writeRemainder(Binary binProps)
                    throws java.io.IOException
Write the remaining properties to the POF stream, terminating the writing of the currrent 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 interface PofWriter
Overrides:
writeRemainder in class PofBufferWriter
Parameters:
binProps - a Binary object containing zero or more indexed properties in binary POF encoded form; may be null
Throws:
java.io.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.
Overrides:
getParentWriter in class PofBufferWriter
Returns:
the containing writer

beginProperty

protected void beginProperty(int iProp)
                      throws java.io.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 PofBufferWriter.endProperty(int).

Overrides:
beginProperty in class PofBufferWriter
Parameters:
iProp - the index of the property being written
Throws:
java.io.IOException - if an I/O error occurs

endProperty

protected void endProperty(int iProp)
Signifies the termination of the current POF property.
Overrides:
endProperty in class PofBufferWriter
Parameters:
iProp - the index of the current property

closeNested

protected void closeNested()
Notify the UserTypeWriter that it is being "closed". This notification allows the UserTypeWriter to write any remaining data that it has pending to write.

onException

protected void onException(java.lang.Exception e)
                    throws java.io.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.

Overrides:
onException in class PofBufferWriter
Parameters:
e - the exception
Throws:
java.io.IOException - the wrapped IOException, if the given exception is a wrapped IOException

writeUserTypeInfo

protected void writeUserTypeInfo()
                          throws java.io.IOException
Write out the type and version identifiers of the user type to the POF stream, if they haven't already been written.
Throws:
java.io.IOException - on I/O error

enableReferences

public void enableReferences()
Ensure that references (support for cyclic dependencies) are enabled.
Overrides:
enableReferences in class PofBufferWriter

Skip navigation links

Oracle® Coherence Java API Reference
Release 3.7.0.0

E18683-01


Copyright © 2000, 2011, Oracle and/or its affiliates. All rights reserved.