PdxReader (Apache Geode 2.0.2)
Description: declaration: package: org.apache.geode.pdx, interface: PdxReader

Package org.apache.geode.pdx

# Interface PdxReader

public interface PdxReader
A PdxReader will be passed to `fromData` or `PdxSerializer fromData` by GemFire during deserialization of a PDX. The domain class needs to deserialize field members using this interface. This interface is implemented by GemFire. Each readXXX call will return the field's value. If the serialized PDX does not contain the named field then a default value will be returned. Standard Java defaults are used. For Objects this is `null` and for primitives it is `0` or `0.0`.

You must read fields in the same order they were written by `PdxWriter`.

The methods on this interface are not thread safe so do not call them concurrently, on the same instance, from more than one thread.

Since:
  GemFire 6.6

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `hasField(String fieldName)`
  Checks if the named field exists and returns the result.
  `boolean`
  `isIdentityField(String fieldName)`
  Checks if the named field was `marked` as an identity field.
  `byte[][]`
  `readArrayOfByteArrays(String fieldName)`
  Reads the named field and returns its value.
  `boolean`
  `readBoolean(String fieldName)`
  Reads the named field and returns its value.
  `boolean[]`
  `readBooleanArray(String fieldName)`
  Reads the named field and returns its value.
  `byte`
  `readByte(String fieldName)`
  Reads the named field and returns its value.
  `byte[]`
  `readByteArray(String fieldName)`
  Reads the named field and returns its value.
  `char`
  `readChar(String fieldName)`
  Reads the named field and returns its value.
  `char[]`
  `readCharArray(String fieldName)`
  Reads the named field and returns its value.
  `Date`
  `readDate(String fieldName)`
  Reads the named field and returns its value.
  `double`
  `readDouble(String fieldName)`
  Reads the named field and returns its value.
  `double[]`
  `readDoubleArray(String fieldName)`
  Reads the named field and returns its value.
  `Object`
  `readField(String fieldName)`
  Reads the named field and returns its value.
  `float`
  `readFloat(String fieldName)`
  Reads the named field and returns its value.
  `float[]`
  `readFloatArray(String fieldName)`
  Reads the named field and returns its value.
  `int`
  `readInt(String fieldName)`
  Reads the named field and returns its value.
  `int[]`
  `readIntArray(String fieldName)`
  Reads the named field and returns its value.
  `long`
  `readLong(String fieldName)`
  Reads the named field and returns its value.
  `long[]`
  `readLongArray(String fieldName)`
  Reads the named field and returns its value.
  `Object`
  `readObject(String fieldName)`
  Reads the named field and returns its value.
  `Object[]`
  `readObjectArray(String fieldName)`
  Reads the named field and returns its value.
  `short`
  `readShort(String fieldName)`
  Reads the named field and returns its value.
  `short[]`
  `readShortArray(String fieldName)`
  Reads the named field and returns its value.
  `String`
  `readString(String fieldName)`
  Reads the named field and returns its value.
  `String[]`
  `readStringArray(String fieldName)`
  Reads the named field and returns its value.
  `PdxUnreadFields`
  `readUnreadFields()`
  This method returns an object that represents all the unread fields which must be passed to `writeUnreadFields` in the toData code.

- ## Method Details

  - ### readChar

    char readChar(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `char` field.
      `PdxSerializationException` - if deserialization of the field fails.

  - ### readBoolean

    boolean readBoolean(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `boolean` field.
      `PdxSerializationException` - if deserialization of the field fails.

  - ### readByte

    byte readByte(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `byte` field.
      `PdxSerializationException` - if deserialization of the field fails.

  - ### readShort

    short readShort(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `short` field.
      `PdxSerializationException` - if deserialization of the field fails.

  - ### readInt

    int readInt(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `int` field.
      `PdxSerializationException` - if deserialization of the field fails.

  - ### readLong

    long readLong(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `long` field.
      `PdxSerializationException` - if deserialization of the field fails.

  - ### readFloat

    float readFloat(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `float` field.
      `PdxSerializationException` - if deserialization of the field fails.

  - ### readDouble

    double readDouble(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `double` field.
      `PdxSerializationException` - if deserialization of the field fails.

  - ### readString

    String readString(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `String` field.
      `PdxSerializationException` - if deserialization of the field fails.

  - ### readObject

    Object readObject(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxSerializationException` - if deserialization of the field fails.
      `PdxFieldTypeMismatchException` - if the named field exists and is not an `Object` field.

  - ### readCharArray

    char[] readCharArray(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxSerializationException` - if deserialization of the field fails.
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `char[]` field.

  - ### readBooleanArray

    boolean[] readBooleanArray(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxSerializationException` - if deserialization of the field fails.
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `boolean[]` field.

  - ### readByteArray

    byte[] readByteArray(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxSerializationException` - if deserialization of the field fails.
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `byte[]` field.

  - ### readShortArray

    short[] readShortArray(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxSerializationException` - if deserialization of the field fails.
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `short[]` field.

  - ### readIntArray

    int[] readIntArray(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxSerializationException` - if deserialization of the field fails.
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `int[]` field.

  - ### readLongArray

    long[] readLongArray(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxSerializationException` - if deserialization of the field fails.
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `long[]` field.

  - ### readFloatArray

    float[] readFloatArray(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxSerializationException` - if deserialization of the field fails.
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `float[]` field.

  - ### readDoubleArray

    double[] readDoubleArray(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxSerializationException` - if deserialization of the field fails.
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `double[]` field.

  - ### readStringArray

    String[] readStringArray(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxSerializationException` - if deserialization of the field fails.
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `String[]` field.

  - ### readObjectArray

    Object[] readObjectArray(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxSerializationException` - if deserialization of the field fails.
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `Object[]` field.

  - ### readArrayOfByteArrays

    byte[][] readArrayOfByteArrays(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxSerializationException` - if deserialization of the field fails.
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `byte[][]` field.

  - ### readDate

    Date readDate(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxSerializationException` - if deserialization of the field fails.
      `PdxFieldTypeMismatchException` - if the named field exists and is not a `Date` field.

  - ### hasField

    boolean hasField(String fieldName)
    Checks if the named field exists and returns the result.

    This can be useful when writing code that handles more than one version of a PDX class.

    Parameters:
      `fieldName` - the name of the field to check
    Returns:
      `true` if the named field exists; otherwise `false`

  - ### isIdentityField

    boolean isIdentityField(String fieldName)
    Checks if the named field was `marked` as an identity field.

    Note that if no fields have been marked then all the fields are used as identity fields even though this method will return `false` since none of them have been marked.

    Parameters:
      `fieldName` - the name of the field to check
    Returns:
      `true` if the named field exists and was marked as an identify field; otherwise `false`

  - ### readField

    Object readField(String fieldName)
    Reads the named field and returns its value.
    Parameters:
      `fieldName` - the name of the field to read
    Returns:
      the value of the field if the field exists; otherwise a default value
    Throws:
      `PdxSerializationException` - if deserialization of the field fails.

  - ### readUnreadFields

    PdxUnreadFields readUnreadFields()
    This method returns an object that represents all the unread fields which must be passed to `writeUnreadFields` in the toData code.

    Note that if `setPdxIgnoreUnreadFields` or `client setPdxIgnoreUnreadFields` are set to `true` then this method will always return an object that has no unread fields.

    Returns:
      an object that represents the unread fields.