class AttachedObjectListHolder<T> extends java.lang.Object implements PartialStateHolder
Utility class to enable partial state saving of Lists of attached objects
such as FacesListener
s or Validator
s.
Modifier and Type | Field and Description |
---|---|
private java.util.List<T> |
attachedObjects |
private boolean |
initialState |
Constructor and Description |
---|
AttachedObjectListHolder() |
Modifier and Type | Method and Description |
---|---|
(package private) void |
add(T attachedObject) |
(package private) T[] |
asArray(java.lang.Class<T> type) |
void |
clearInitialState()
Reset the PartialStateHolder to a non-delta tracking state. |
boolean |
initialStateMarked()
Return |
boolean |
isTransient()
If true, the Object implementing this interface must not
participate in state saving or restoring.
|
void |
markInitialState()
The runtime must ensure that the
|
(package private) void |
remove(T attachedObject) |
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.
|
private boolean initialState
private java.util.List<T> attachedObjects
public void markInitialState()
PartialStateHolder
The runtime must ensure that the
PartialStateHolder.markInitialState()
method is called on each instance of
this interface in the view at the appropriate time to indicate
the component is in its initial state. The implementor of the
interface must ensure that PartialStateHolder.initialStateMarked()
returns
true
from the time markInitialState()
is called until PartialStateHolder.clearInitialState()
is called, after which
time initialStateMarked()
must return
false
. Also, during the time that the instance
returns true
from initialStateMarked()
,
the implementation must return only the state that has changed in
its implementation of StateHolder.saveState(javax.faces.context.FacesContext)
.
markInitialState
in interface PartialStateHolder
public boolean initialStateMarked()
PartialStateHolder
Return true
if delta
state changes are being tracked, otherwise false
initialStateMarked
in interface PartialStateHolder
public void clearInitialState()
PartialStateHolder
Reset the PartialStateHolder to a non-delta tracking state.
clearInitialState
in interface PartialStateHolder
public java.lang.Object saveState(FacesContext context)
StateHolder
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 StateHolder.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
saveState
in interface StateHolder
public void restoreState(FacesContext context, java.lang.Object state)
StateHolder
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 StateHolder.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.
restoreState
in interface StateHolder
public boolean isTransient()
StateHolder
If true, the Object implementing this interface must not participate in state saving or restoring.
isTransient
in interface StateHolder
public void setTransient(boolean newTransientValue)
StateHolder
Denotes whether or not the Object implementing this interface must or must not participate in state saving or restoring.
setTransient
in interface StateHolder
newTransientValue
- boolean pass true
if this
Object will not
participate in state saving or restoring, otherwise pass
false
.void add(T attachedObject)
void remove(T attachedObject)