Interface StateHolder

All Known Subinterfaces:
PartialStateHolder, StateHelper
All Known Implementing Classes:
AjaxBehavior, BeanValidator, BehaviorBase, BehaviorHolderWrapper, CdiConverter, CdiValidator, ClientBehaviorBase, ComponentRef, ComponentResourceContainer, ComponentStruct, CompositeComponentImpl, ConverterTag.BindingConverter, DateTimeConverter, DoubleRangeValidator, EnumConverter, HtmlBody, HtmlColumn, HtmlCommandButton, HtmlCommandLink, HtmlCommandScript, HtmlDataTable, HtmlDoctype, HtmlForm, HtmlGraphicImage, HtmlHead, HtmlInputFile, HtmlInputHidden, HtmlInputSecret, HtmlInputText, HtmlInputTextarea, HtmlMessage, HtmlMessages, HtmlOutcomeTargetButton, HtmlOutcomeTargetLink, HtmlOutputFormat, HtmlOutputLabel, HtmlOutputLink, HtmlOutputText, HtmlPanelGrid, HtmlPanelGroup, HtmlSelectBooleanCheckbox, HtmlSelectManyCheckbox, HtmlSelectManyListbox, HtmlSelectManyMenu, HtmlSelectOneListbox, HtmlSelectOneMenu, HtmlSelectOneRadio, LengthValidator, LongRangeValidator, MethodBindingMethodExpressionAdapter, MethodExpressionActionListener, MethodExpressionMethodBindingAdapter, MethodExpressionValidator, MethodExpressionValueChangeListener, NumberConverter, PassthroughElement, RadioRenderer.GroupSelectItem, RegexValidator, SetPropertyActionListenerImpl, UIColumn, UICommand, UIComponent, UIComponentBase, UIData, UIDebug, UIFocus, UIForm, UIGraphic, UIImportConstants, UIInput, UIInstructions, UILeaf, UILiteralText, UIMessage, UIMessages, UINamingContainer, UIOutcomeTarget, UIOutput, UIPanel, UIParameter, UIRepeat, UISelectBoolean, UISelectItem, UISelectItems, UISelectMany, UISelectOne, UIText, UIValidateWholeBean, UIViewAction, UIViewParameter, UIViewRoot, UIWebsocket, ValidatorTag.BindingValidator, ValueBindingValueExpressionAdapter, ValueExpressionValueBindingAdapter

public interface StateHolder

This interface is implemented by classes that need to save their state between requests.

An implementor must implement both saveState(jakarta.faces.context.FacesContext) and restoreState(jakarta.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(jakarta.faces.context.FacesContext) and restoreState(jakarta.faces.context.FacesContext, java.lang.Object) methods reside at different levels of the hierarchy.

An implementor must have a public no-args constructor.

  • Method Summary

    Modifier and Type Method Description
    boolean isTransient()
    If true, the Object implementing this interface must not participate in state saving or restoring.
    void restoreState​(FacesContext context, Object state)
    Perform any processing required to restore the state from the entries in the state Object.
    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.
  • Method Details

    • saveState

      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(jakarta.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

      Parameters:
      context - the Faces context.
      Returns:
      the saved state.
      Throws:
      NullPointerException - if context is null
    • restoreState

      void restoreState​(FacesContext context, 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(jakarta.faces.context.FacesContext, java.lang.Object) method on all those instances as well.

      If the state argument is null, take no action and return.

      Parameters:
      context - the Faces context.
      state - the state.
      Throws:
      NullPointerException - if context is null.
    • isTransient

      boolean isTransient()

      If true, the Object implementing this interface must not participate in state saving or restoring.

      Returns:
      true if transient, false otherwise.
    • setTransient

      void setTransient​(boolean newTransientValue)

      Denotes whether or not the Object implementing this interface must or must not participate in state saving or restoring.

      Parameters:
      newTransientValue - boolean pass true if this Object will not participate in state saving or restoring, otherwise pass false.