org.codehaus.wadi.core.session
Class DistributableValue

java.lang.Object
  extended by org.codehaus.wadi.core.session.StandardValue
      extended by org.codehaus.wadi.core.session.DistributableValue
All Implemented Interfaces:
java.io.Externalizable, java.io.Serializable, Value
Direct Known Subclasses:
LazyValue

public class DistributableValue
extends StandardValue
implements java.io.Externalizable

An attribute Value that supports the notification of HttpSessionActivationListeners at the correct times as well as the substition of non-Serializable content with the results of pluggable Helpers. This allows us to deal with the special cases mentioned in J2EE.6.4 in a non app-server specific manner. In other words, we can deal with attributes that are non-serialisable, provided that the application writer provides a mechanism for their persistance. Types such as EJBHome, EJBObject etc. are likely to be placed into distributable Sessions. It does not expect to be accessed after serialisation, until a fresh deserialisation has occurred.

Version:
$Revision: 1181 $
Author:
Jules Gosnell
See Also:
Serialized Form

Field Summary
protected  ValueHelper valueHelper
           
protected  ValueHelperRegistry valueHelperRegistry
           
 
Fields inherited from class org.codehaus.wadi.core.session.StandardValue
value
 
Constructor Summary
DistributableValue(ValueHelperRegistry valueHelperRegistry)
           
 
Method Summary
protected  boolean initValueHelper(java.lang.Object value)
           
 void readExternal(java.io.ObjectInput oi)
           
 java.lang.Object setValue(java.lang.Object newValue)
           
 void writeExternal(java.io.ObjectOutput oo)
           
 
Methods inherited from class org.codehaus.wadi.core.session.StandardValue
equals, getValue, hashCode
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

valueHelperRegistry

protected final ValueHelperRegistry valueHelperRegistry

valueHelper

protected ValueHelper valueHelper
Constructor Detail

DistributableValue

public DistributableValue(ValueHelperRegistry valueHelperRegistry)
Method Detail

setValue

public java.lang.Object setValue(java.lang.Object newValue)
Specified by:
setValue in interface Value
Overrides:
setValue in class StandardValue

writeExternal

public void writeExternal(java.io.ObjectOutput oo)
                   throws java.io.IOException
Specified by:
writeExternal in interface java.io.Externalizable
Throws:
java.io.IOException

readExternal

public void readExternal(java.io.ObjectInput oi)
                  throws java.io.IOException,
                         java.lang.ClassNotFoundException
Specified by:
readExternal in interface java.io.Externalizable
Throws:
java.io.IOException
java.lang.ClassNotFoundException

initValueHelper

protected boolean initValueHelper(java.lang.Object value)


Copyright © 2008. All Rights Reserved.