Skip navigation links

Oracle® Fusion Middleware Java API Reference for Oracle Coherence
12c (12.1.3.0.0)

E47890-01


com.tangosol.io.pof.reflect
Class AbstractPofValue

java.lang.Object
  extended by com.tangosol.util.Base
      extended by com.tangosol.util.BitHelper
          extended by com.tangosol.util.ExternalizableHelper
              extended by com.tangosol.io.pof.reflect.AbstractPofValue

All Implemented Interfaces:
PofValue
Direct Known Subclasses:
ComplexPofValue, SimplePofValue

public abstract class AbstractPofValue
extends ExternalizableHelper
implements PofValue

An abstract base class that implements common functionality for all PofValue types.

Since:
Coherence 3.5
Author:
as 2009.02.12

Field Summary
protected  LongArray m_arrayRefs
          Lazily-constructed mapping of identities to references.
protected  int m_nType
          POF type identifer of this value.
protected  java.lang.Object m_oValue
          Deserialized representation of this value.

 

Constructor Summary
AbstractPofValue(PofValue valueParent, ReadBuffer bufValue, PofContext ctx, int of, int nType)
          Construct a PofValue instance wrapping the supplied buffer.

 

Method Summary
 Binary applyChanges()
          Apply all the changes that were made to this value and return a binary representation of the new value.
protected  LongArray ensureReferenceRegistry()
          Obtain the registry for identity-reference pairs, creating it if necessary.
 java.math.BigDecimal getBigDecimal()
          Return the BigDecimal which this PofValue represents.
 java.math.BigInteger getBigInteger()
          Return the BigInteger which this PofValue represents.
 boolean getBoolean()
          Return the boolean which this PofValue represents.
 boolean[] getBooleanArray()
          Return the boolean[] which this PofValue represents.
 byte getByte()
          Return the byte which this PofValue represents.
 byte[] getByteArray()
          Return the byte[] which this PofValue represents.
 ReadBuffer getChanges()
          Return a buffer containing changes made to this PofValue in the format defined by the BinaryDeltaCompressor.
 char getChar()
          Return the char which this PofValue represents.
 char[] getCharArray()
          Return the char[] which this PofValue represents.
 java.util.Collection getCollection(java.util.Collection coll)
          Return the Collection which this PofValue represents.
 java.util.Date getDate()
          Return the Date which this PofValue represents.
protected  int getDirtyBytesCount()
          Get the estimated number of dirty bytes in this POF value hierarchy.
 double getDouble()
          Return the double which this PofValue represents.
 double[] getDoubleArray()
          Return the double[] which this PofValue represents.
 float getFloat()
          Return the float which this PofValue represents.
 float[] getFloatArray()
          Return the float[] which this PofValue represents.
 int getInt()
          Return the int which this PofValue represents.
 int[] getIntArray()
          Return the int[] which this PofValue represents.
 long getLong()
          Return the long which this PofValue represents.
 long[] getLongArray()
          Return the long[] which this PofValue represents.
 java.util.Map getMap(java.util.Map map)
          Return the Map which this PofValue represents.
 java.lang.Object[] getObjectArray()
          Return the Object[] which this PofValue represents.
 int getOffset()
          Return the offset of this value from the beginning of POF stream.
protected  ReadBuffer getOriginalBuffer()
          Get the original buffer the changes should be applied to.
 PofValue getParent()
          Return the parent of this value.
 PofContext getPofContext()
          Return the POF context to use for serialization and deserialization.
protected  int getPropertyIndex()
           
 PofValue getRoot()
          Return the root of the hierarchy this value belongs to.
 ReadBuffer getSerializedValue()
          Return this value's serialized form.
 short getShort()
          Return the short which this PofValue represents.
 short[] getShortArray()
          Return the short[] which this PofValue represents.
 int getSize()
          Return the size of the encoded value in bytes.
 java.lang.String getString()
          Return the String which this PofValue represents.
 int getTypeId()
          Obtain the POF type identifier for this value.
 java.lang.Object getValue()
          Return the deserialized value which this PofValue represents.
 java.lang.Object getValue(java.lang.Class clz)
          Return the deserialized value which this PofValue represents.
 java.lang.Object getValue(int nType)
          Return the deserialized value which this PofValue represents.
protected  ReadBuffer getValueBuffer()
          Get the raw value buffer.
protected  void incrementDirtyBytesCount(int cb)
          Increment the counter representing the estimated number of bytes in the original buffer that have been modified.
protected  void incrementDirtyValuesCount()
          Increment the counter representing the number of values within this POF hierarchy that have been modified.
 boolean isDirty()
          Return true if this value has been modified, false otherwise.
protected  boolean isRoot()
          Return true if this instance is the root of the PofValue hierarchy.
protected  boolean isUniformEncoded()
          Return true if the buffer contains only the value, without the type identifier.
protected  PofValue lookupIdentity(int nId)
          Look up the specified identity and return the PofValue to which it refers.
protected  void registerIdentity(int nId, java.lang.Object oValue)
          Register the passed value with the passed identity.
protected  void setDecorations(long nDecoMask, ReadBuffer bufDeco)
          Set the decoration mask and decorations for the PofValue.
protected  void setDirty()
          Set the dirty flag for this value.
protected  void setOriginalBuffer(ReadBuffer bufValue)
          Set the original buffer the changes should be applied to.
protected  void setUniformEncoded()
          Specifies that the buffer contains only a value, without a type identifier.
 void setValue(java.lang.Object oValue)
          Update this PofValue.

 

Methods inherited from class com.tangosol.util.BitHelper
countBits, countBits, countBits, indexOfLSB, indexOfLSB, indexOfLSB, indexOfMSB, indexOfMSB, indexOfMSB, rotateLeft, rotateLeft, rotateLeft, rotateRight, rotateRight, rotateRight, toBitString, toBitString, toBitString, toBytes, toBytes, toBytes, toBytes, toInt, toInt, toLong, toLong

 

Methods inherited from interface com.tangosol.io.pof.reflect.PofValue
getChild

 

Field Detail

m_arrayRefs

protected LongArray m_arrayRefs
Lazily-constructed mapping of identities to references.

m_nType

protected int m_nType
POF type identifer of this value.

m_oValue

protected java.lang.Object m_oValue
Deserialized representation of this value.

Constructor Detail

AbstractPofValue

public AbstractPofValue(PofValue valueParent,
                        ReadBuffer bufValue,
                        PofContext ctx,
                        int of,
                        int nType)
Construct a PofValue instance wrapping the supplied buffer.
Parameters:
valueParent - parent value within the POF stream
bufValue - buffer containing POF representation of this value
ctx - POF context to use when reading or writing properties
of - offset of this value from the beginning of POF stream
nType - POF type identifier for this value

Method Detail

getTypeId

public int getTypeId()
Obtain the POF type identifier for this value.
Specified by:
getTypeId in interface PofValue
Returns:
POF type identifier for this value

getRoot

public PofValue getRoot()
Return the root of the hierarchy this value belongs to.
Specified by:
getRoot in interface PofValue
Returns:
the root value

getParent

public PofValue getParent()
Return the parent of this value.
Specified by:
getParent in interface PofValue
Returns:
the parent value, or null if this is root value

getValue

public java.lang.Object getValue()
Return the deserialized value which this PofValue represents.

Note: For primitive types such as int or boolean, the POF type is not stored in the POF stream. Therefore, for primitive types, the type or class must be explicitly specified via PofValue.getValue(int) or PofValue.getValue(Class).

Specified by:
getValue in interface PofValue
Returns:
the deserialized value

getValue

public java.lang.Object getValue(java.lang.Class clz)
Return the deserialized value which this PofValue represents.

Note: For primitive types such as int or boolean, the POF type is not stored in the POF stream. Therefore, for primitive types, the clz parameter must not be null.

Specified by:
getValue in interface PofValue
Parameters:
clz - the required class of the returned value or null if the class is to be inferred from the serialized state
Returns:
the deserialized value

getValue

public java.lang.Object getValue(int nType)
Return the deserialized value which this PofValue represents.

Note: For primitive types such as int or boolean, the POF type is not stored in the POF stream. Therefore, for primitive types, the type must be explicitly specified with the nType parameter.

Specified by:
getValue in interface PofValue
Parameters:
nType - the required POF type of the returned value or PofConstants.T_UNKNOWN if the type is to be inferred from the serialized state
Returns:
the deserialized value

setValue

public void setValue(java.lang.Object oValue)
Update this PofValue.

The changes made using this method will be immediately reflected in the result of PofValue.getValue() method, but will not be applied to the underlying POF stream until the PofValue.applyChanges() method is invoked on the root PofValue.

Specified by:
setValue in interface PofValue
Parameters:
oValue - new deserialized value for this PofValue

applyChanges

public Binary applyChanges()
Apply all the changes that were made to this value and return a binary representation of the new value.

Any format prefixes and/or decorations that were present in the original buffer this value orginated from will be preserved.

Note: this method can only be called on the root PofValue.

Specified by:
applyChanges in interface PofValue
Returns:
new Binary object that contains modified PofValue

getChanges

public ReadBuffer getChanges()
Return a buffer containing changes made to this PofValue in the format defined by the BinaryDeltaCompressor.

Note: this method can only be called on the root PofValue

Specified by:
getChanges in interface PofValue
Returns:
a buffer containing changes made to this PofValue

getBoolean

public boolean getBoolean()
Return the boolean which this PofValue represents.
Specified by:
getBoolean in interface PofValue
Returns:
the boolean value

getByte

public byte getByte()
Return the byte which this PofValue represents.
Specified by:
getByte in interface PofValue
Returns:
the byte value

getChar

public char getChar()
Return the char which this PofValue represents.
Specified by:
getChar in interface PofValue
Returns:
the char value

getShort

public short getShort()
Return the short which this PofValue represents.
Specified by:
getShort in interface PofValue
Returns:
the short value

getInt

public int getInt()
Return the int which this PofValue represents.
Specified by:
getInt in interface PofValue
Returns:
the int value

getLong

public long getLong()
Return the long which this PofValue represents.
Specified by:
getLong in interface PofValue
Returns:
the long value

getFloat

public float getFloat()
Return the float which this PofValue represents.
Specified by:
getFloat in interface PofValue
Returns:
the float value

getDouble

public double getDouble()
Return the double which this PofValue represents.
Specified by:
getDouble in interface PofValue
Returns:
the double value

getBooleanArray

public boolean[] getBooleanArray()
Return the boolean[] which this PofValue represents.
Specified by:
getBooleanArray in interface PofValue
Returns:
the boolean[] value

getByteArray

public byte[] getByteArray()
Return the byte[] which this PofValue represents.
Specified by:
getByteArray in interface PofValue
Returns:
the byte[] value

getCharArray

public char[] getCharArray()
Return the char[] which this PofValue represents.
Specified by:
getCharArray in interface PofValue
Returns:
the char[] value

getShortArray

public short[] getShortArray()
Return the short[] which this PofValue represents.
Specified by:
getShortArray in interface PofValue
Returns:
the short[] value

getIntArray

public int[] getIntArray()
Return the int[] which this PofValue represents.
Specified by:
getIntArray in interface PofValue
Returns:
the int[] value

getLongArray

public long[] getLongArray()
Return the long[] which this PofValue represents.
Specified by:
getLongArray in interface PofValue
Returns:
the long[] value

getFloatArray

public float[] getFloatArray()
Return the float[] which this PofValue represents.
Specified by:
getFloatArray in interface PofValue
Returns:
the float[] value

getDoubleArray

public double[] getDoubleArray()
Return the double[] which this PofValue represents.
Specified by:
getDoubleArray in interface PofValue
Returns:
the double[] value

getBigInteger

public java.math.BigInteger getBigInteger()
Return the BigInteger which this PofValue represents.
Specified by:
getBigInteger in interface PofValue
Returns:
the BigInteger value

getBigDecimal

public java.math.BigDecimal getBigDecimal()
Return the BigDecimal which this PofValue represents.
Specified by:
getBigDecimal in interface PofValue
Returns:
the BigDecimal value

getString

public java.lang.String getString()
Return the String which this PofValue represents.
Specified by:
getString in interface PofValue
Returns:
the String value

getDate

public java.util.Date getDate()
Return the Date which this PofValue represents.
Specified by:
getDate in interface PofValue
Returns:
the Date value

getObjectArray

public java.lang.Object[] getObjectArray()
Return the Object[] which this PofValue represents.
Specified by:
getObjectArray in interface PofValue
Returns:
the Object[] value

getCollection

public java.util.Collection getCollection(java.util.Collection coll)
Return the Collection which this PofValue represents.
Specified by:
getCollection in interface PofValue
Parameters:
coll - the optional Collection to use to store the values
Returns:
the Collection value

getMap

public java.util.Map getMap(java.util.Map map)
Return the Map which this PofValue represents.
Specified by:
getMap in interface PofValue
Parameters:
map - the optional Map to use to store the values
Returns:
the Map value

getPofContext

public PofContext getPofContext()
Return the POF context to use for serialization and deserialization.
Returns:
the POF context

getOffset

public int getOffset()
Return the offset of this value from the beginning of POF stream.
Returns:
the offset of this value from the beginning of POF stream

getSize

public int getSize()
Return the size of the encoded value in bytes.
Returns:
the size of the encoded value

isDirty

public boolean isDirty()
Return true if this value has been modified, false otherwise.
Returns:
true if this value has been modified, false otherwise

setDirty

protected void setDirty()
Set the dirty flag for this value.

getSerializedValue

public ReadBuffer getSerializedValue()
Return this value's serialized form.
Returns:
this value's serialized form

getPropertyIndex

protected int getPropertyIndex()

getOriginalBuffer

protected ReadBuffer getOriginalBuffer()
Get the original buffer the changes should be applied to.
Returns:
buffer containing the original value

setOriginalBuffer

protected void setOriginalBuffer(ReadBuffer bufValue)
Set the original buffer the changes should be applied to.
Parameters:
bufValue - buffer containing the original value

ensureReferenceRegistry

protected LongArray ensureReferenceRegistry()
Obtain the registry for identity-reference pairs, creating it if necessary.
Returns:
the identity-reference registry, never null

registerIdentity

protected void registerIdentity(int nId,
                                java.lang.Object oValue)
Register the passed value with the passed identity.
Parameters:
nId - the identity within the POF stream of the object
oValue - the object to associate with the passed identity
Throws:
java.lang.IllegalArgumentException - if the specified identity is already registered with a different object

lookupIdentity

protected PofValue lookupIdentity(int nId)
                           throws java.io.IOException
Look up the specified identity and return the PofValue to which it refers.
Parameters:
nId - the identity
Returns:
the object registered under that identity
Throws:
java.io.IOException - if the requested identity is not registered

getValueBuffer

protected ReadBuffer getValueBuffer()
Get the raw value buffer.
Returns:
buffer containing the raw value

setDecorations

protected void setDecorations(long nDecoMask,
                              ReadBuffer bufDeco)
Set the decoration mask and decorations for the PofValue.
Parameters:
nDecoMask - decoration identifiers bit mask
bufDeco - buffer containing the decorations

isRoot

protected boolean isRoot()
Return true if this instance is the root of the PofValue hierarchy.
Returns:
true if this is the root value

isUniformEncoded

protected boolean isUniformEncoded()
Return true if the buffer contains only the value, without the type identifier.
Returns:
true if the buffer contains only the value

setUniformEncoded

protected void setUniformEncoded()
Specifies that the buffer contains only a value, without a type identifier.

getDirtyBytesCount

protected int getDirtyBytesCount()
Get the estimated number of dirty bytes in this POF value hierarchy.
Returns:
the number of dirty bytes

incrementDirtyValuesCount

protected void incrementDirtyValuesCount()
Increment the counter representing the number of values within this POF hierarchy that have been modified.

incrementDirtyBytesCount

protected void incrementDirtyBytesCount(int cb)
Increment the counter representing the estimated number of bytes in the original buffer that have been modified.
Parameters:
cb - the number of bytes to increment counter for

Skip navigation links

Oracle® Fusion Middleware Java API Reference for Oracle Coherence
12c (12.1.3.0.0)

E47890-01


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