Overview | Package | Class | Tree | Index | Help

Oracle® Coherence Java API Reference
v3.5.3
E15583-01
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.tangosol.io.pof
Class PofBufferWriter.UserTypeWriter

    java.lang.Object
      com.tangosol.util.Base
          com.tangosol.io.pof.PofHelper
              com.tangosol.io.pof.PofBufferWriter
                  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.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_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.

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

Fields inherited from class com.tangosol.io.pof.PofHelper
`BIGDECIMAL_ZERO, 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(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` | `endProperty(int iProp)` Signifies the termination of the current POF property.
`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` | `writeObject(int iProp, java.lang.Object o)` 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 the `PofContext` associated with this PofWriter.
`void` | `writeRemainder(Binary binProps)` 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.
`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, writeBooleanArray, writeByte, writeByteArray, writeChar, writeCharArray, writeCollection, writeCollection, writeDate, writeDateTime, writeDateTime, writeDateTimeWithZone, writeDateTimeWithZone, writeDouble, writeDoubleArray, writeFloat, writeFloatArray, writeInt, writeIntArray, writeLong, writeLongArray, writeLongArray, writeLongArray, writeMap, writeMap, writeMap, writeObjectArray, writeObjectArray, writeRawDate, writeRawDateTime, writeRawDayTimeInterval, writeRawQuad, writeRawTime, writeRawTimeInterval, writeRawYearMonthInterval, writeShort, writeShortArray, writeString, writeTime, writeTime, writeTimeWithZone, writeTimeWithZone`

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, 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_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.

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(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

Method Detail

### writeObject

    public void writeObject(int iProp,
                            java.lang.Object o)
                     throws java.io.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 the `PofContext` associated with this PofWriter.

  Specified by:
    `writeObject` in interface `PofWriter`
  Overrides:
    `writeObject` in class `PofBufferWriter`
  Parameters:
    `iProp` - the property index
    `o` - the `Object` property to write
  Throws:
    `java.io.IOException` - if an I/O error occurs

### 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

### 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

### 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

### 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

Overview | Package | Class | Tree | Index | Help

Oracle® Coherence Java API Reference
v3.5.3
E15583-01
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000, 2010, Oracle. All rights reserved.