Skip navigation links

Oracle® Coherence Java API Reference
Release 12.1.2.0.3

E26043-02


com.tangosol.coherence.servlet
Class SplittableHolder

java.lang.Object
  extended by com.tangosol.util.Base
      extended by com.tangosol.coherence.servlet.AttributeHolder
          extended by com.tangosol.coherence.servlet.OptimizedHolder
              extended by com.tangosol.coherence.servlet.SplittableHolder

All Implemented Interfaces:
ExternalizableLite, java.io.Externalizable, java.io.Serializable

public class SplittableHolder
extends OptimizedHolder

An immutable object to hold attribute values and related information. In this AttributeHolder sub-class, the binary value will be null if it has not been serialized, empty if it is external and has not been fetched yet, or a valid binary value.


Constructor Summary
SplittableHolder()
          Default constructor for ExternalizableLite.
SplittableHolder(SplitHttpSessionModel model)
          Construct an AttributeHolder for a value.
SplittableHolder(java.lang.String sName, java.lang.Object oValue, SplitHttpSessionModel model)
          Construct an AttributeHolder for a value.

 

Method Summary
protected  java.lang.Object assignExternalKey(java.lang.String sId)
          Generate and set the key that will be used to access the binary value for this attribute holder that is in the external cache.
protected  Binary ensureInternalBinary()
          Obtain the non-null internally managed binary value.
protected  void flush()
          Called to flush the value to its data storage.
protected  Binary getExternalBinary()
          Obtain the binary form of the value from the external cache.
protected  java.lang.Object getExternalKey()
          Build a key that will be used to access the binary value for this attribute holder that in the external cache.
 java.lang.Object getValue()
          Obtain the object form of the value.
protected  boolean isExternal()
          Determine if the value is stored in the external cache.
protected  boolean isExternalDesirable(Binary binValue)
          Decide whether or not this holder will choose to store the passed binary value in its external storage.
 void onBound(AttributeHolder holderOrig)
          Called when the attribute is bound.
 void onUnbound(boolean fReplaced, boolean fAll)
          Called when the attribute is unbound.
protected  void prepareWrite()
          Called to test serialization; if the holder cannot serialize its value, it should throw an IOException at this point.
protected  Binary readBinary(java.io.DataInput in)
          Read the binary value.
protected  void removeExternalBinary()
          Remove the binary form of the value from the external cache.
protected  void setExternal(boolean fExternal)
          Specify that the value is stored in the external cache.
protected  void setExternalBinary(Binary binValue)
          Store the binary form of the value in the external cache.
protected  void writeBinary(java.io.DataOutput out)
          Write the binary value.
 void writeExternal(java.io.DataOutput out)
          Helper to write the object state to a stream.

 

Methods inherited from class com.tangosol.coherence.servlet.OptimizedHolder
deserializeValue, getBinary, getInternalBinary, readExternal, serializeValue, setInternalBinary

 

Methods inherited from class com.tangosol.coherence.servlet.AttributeHolder
getInternalValue, getModel, getName, isActivationListener, isBindingListener, isEnableSuspectAttributes, isLocal, isSuspect, isSuspect, readExternal, setInternalValue, setLocal, setModel, setSuspect, writeExternal

 

Constructor Detail

SplittableHolder

public SplittableHolder()
Default constructor for ExternalizableLite.

SplittableHolder

public SplittableHolder(SplitHttpSessionModel model)
Construct an AttributeHolder for a value.

SplittableHolder

public SplittableHolder(java.lang.String sName,
                        java.lang.Object oValue,
                        SplitHttpSessionModel model)
Construct an AttributeHolder for a value.
Parameters:
sName - the attribute name
oValue - the value of the attribute; not null

Method Detail

getValue

public java.lang.Object getValue()
Obtain the object form of the value.
Overrides:
getValue in class OptimizedHolder
Returns:
the object form of the value

onBound

public void onBound(AttributeHolder holderOrig)
Called when the attribute is bound.
Overrides:
onBound in class AttributeHolder
Parameters:
holderOrig - the holder that this new bound holder is replacing, if any, otherwise null

onUnbound

public void onUnbound(boolean fReplaced,
                      boolean fAll)
Called when the attribute is unbound.
Overrides:
onUnbound in class AttributeHolder
Parameters:
fReplaced - set to true of this is the result of a bind operation (so the holder is being replaced)
fAll - true if this method is called within the context of an AbstractHttpSessionModel.unbind() call

flush

protected void flush()
              throws java.io.IOException
Called to flush the value to its data storage.
Overrides:
flush in class AttributeHolder
Throws:
java.io.IOException - on I/O error

writeExternal

public void writeExternal(java.io.DataOutput out)
                   throws java.io.IOException
Helper to write the object state to a stream.
Specified by:
writeExternal in interface ExternalizableLite
Overrides:
writeExternal in class OptimizedHolder
Parameters:
out - the stream to write the object to
Throws:
java.io.IOException - if an I/O exception occurs

ensureInternalBinary

protected Binary ensureInternalBinary()
Obtain the non-null internally managed binary value. This method allows sub-classes to lazily load the cached binary.

This method is explicitly NOT a "MAKE BINARY OUT OF VALUE" method. It is only intended to allow lazy loading of the pre-existing binary value, for example from a distributed cache.

Overrides:
ensureInternalBinary in class OptimizedHolder
Returns:
the binary form of the value, but never null

isExternal

protected boolean isExternal()
Determine if the value is stored in the external cache. The value in the external cache is not necessarily up to date; this only indicates whether it is there at all.
Returns:
true if the holder's value is stored in the external cache

setExternal

protected void setExternal(boolean fExternal)
Specify that the value is stored in the external cache.
Parameters:
fExternal - true if the object is stored in the external cache

isExternalDesirable

protected boolean isExternalDesirable(Binary binValue)
Decide whether or not this holder will choose to store the passed binary value in its external storage.
Parameters:
binValue - the binary value to evaluate to determine whether it should be stored internally or externally
Returns:
true if this holder will store the passed value in an external cache, false otherwise

getExternalKey

protected java.lang.Object getExternalKey()
Build a key that will be used to access the binary value for this attribute holder that in the external cache.
Returns:
the key for this attribute holder's value in the external cache

assignExternalKey

protected java.lang.Object assignExternalKey(java.lang.String sId)
Generate and set the key that will be used to access the binary value for this attribute holder that is in the external cache.
Parameters:
sId - the session ID associated with this key
Returns:
the key for this attribute holder's value in the external cache

getExternalBinary

protected Binary getExternalBinary()
Obtain the binary form of the value from the external cache.
Returns:
the binary form of the value or null if it hasn't been stored in the external cache yet

setExternalBinary

protected void setExternalBinary(Binary binValue)
Store the binary form of the value in the external cache.
Parameters:
binValue - the binary form of the value to store in the external cache

removeExternalBinary

protected void removeExternalBinary()
Remove the binary form of the value from the external cache.

prepareWrite

protected void prepareWrite()
                     throws java.io.IOException
Called to test serialization; if the holder cannot serialize its value, it should throw an IOException at this point. Note that this method should only be called as part of the "write" processing for the model, as the holder will expect an immediate follow-up call to actually write itself out.
Overrides:
prepareWrite in class OptimizedHolder
Throws:
java.io.IOException - if the holder cannot serialize its value

readBinary

protected Binary readBinary(java.io.DataInput in)
                     throws java.io.IOException
Read the binary value. This is part of deserialization processing, and is separated out to enable subclassing.
Overrides:
readBinary in class OptimizedHolder
Parameters:
in - the DataInput that this holder is being deserialized from
Returns:
the binary value
Throws:
java.io.IOException - on I/O error

writeBinary

protected void writeBinary(java.io.DataOutput out)
                    throws java.io.IOException
Write the binary value. This is part of serialization processing, and is separated out to enable subclassing.
Overrides:
writeBinary in class OptimizedHolder
Parameters:
out - the DataOutput that this holder is being serialized to
Throws:
java.io.IOException - on I/O error

Skip navigation links

Oracle® Coherence Java API Reference
Release 12.1.2.0.3

E26043-02


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