public interface StateHolder
This interface is implemented by classes that need to save their state between requests.
An implementor must implement both saveState(javax.faces.context.FacesContext)
and restoreState(javax.faces.context.FacesContext, java.lang.Object)
methods in this class, since
these two methods have a tightly coupled contract between themselves.
In other words, if there is an ineritance hierarchy, it is not
permissable to have the saveState(javax.faces.context.FacesContext)
and restoreState(javax.faces.context.FacesContext, java.lang.Object)
methods reside at different levels of the hierarchy.
An implementor must have a public no-args constructor.
Modifier and Type | Method and Description |
---|---|
boolean |
isTransient()
If true, the Object implementing this interface must not
participate in state saving or restoring.
|
void |
restoreState(FacesContext context,
java.lang.Object state)
Perform any
processing required to restore the state from the entries in the
state Object.
|
java.lang.Object |
saveState(FacesContext context)
Gets the state of the instance as a
Serializable Object. |
void |
setTransient(boolean newTransientValue)
Denotes
whether or not the Object implementing this interface must or
must not participate in state saving or restoring.
|
java.lang.Object saveState(FacesContext context)
Gets the state of the instance as a
Serializable
Object.
If the class that implements this interface has references to
instances that implement StateHolder (such as a
UIComponent
with event handlers, validators, etc.)
this method must call the saveState(javax.faces.context.FacesContext)
method on all those
instances as well. This method must not save the state
of children and facets. That is done via the StateManager
This method must not alter the state of the implementing object. In other words, after executing this code:
Object state = component.saveState(facesContext);
component
should be the same as before executing
it.
The return from this method must be Serializable
context
- the Faces context.java.lang.NullPointerException
- if context
is nullvoid restoreState(FacesContext context, java.lang.Object state)
Perform any processing required to restore the state from the entries in the state Object.
If the class that implements this interface has references to
instances that also implement StateHolder (such as a
UIComponent
with event handlers, validators, etc.)
this method must call the restoreState(javax.faces.context.FacesContext, java.lang.Object)
method on all those
instances as well.
If the state
argument is null
, take no action and return.
context
- the Faces context.state
- the state.java.lang.NullPointerException
- if context
is null.boolean isTransient()
If true, the Object implementing this interface must not participate in state saving or restoring.
true
if transient, false
otherwise.void setTransient(boolean newTransientValue)
Denotes whether or not the Object implementing this interface must or must not participate in state saving or restoring.
newTransientValue
- boolean pass true
if this
Object will not
participate in state saving or restoring, otherwise pass
false
.