Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## javax.faces.component
Interface StateHolder

All Known Subinterfaces:
  PartialStateHolder, StateHelper

All Known Implementing Classes:
  AjaxBehavior, BeanValidator, BehaviorBase, ClientBehaviorBase, DateTimeConverter, DoubleRangeValidator, EnumConverter, HtmlBody, HtmlColumn, HtmlCommandButton, HtmlCommandLink, HtmlDataTable, HtmlForm, HtmlGraphicImage, HtmlHead, HtmlInputHidden, HtmlInputSecret, HtmlInputText, HtmlInputTextarea, HtmlMessage, HtmlMessages, HtmlOutcomeTargetButton, HtmlOutcomeTargetLink, HtmlOutputFormat, HtmlOutputLabel, HtmlOutputLink, HtmlOutputText, HtmlPanelGrid, HtmlPanelGroup, HtmlSelectBooleanCheckbox, HtmlSelectManyCheckbox, HtmlSelectManyListbox, HtmlSelectManyMenu, HtmlSelectOneListbox, HtmlSelectOneMenu, HtmlSelectOneRadio, LengthValidator, LongRangeValidator, MethodExpressionActionListener, MethodExpressionValidator, MethodExpressionValueChangeListener, NumberConverter, RegexValidator, UIColumn, UICommand, UIComponent, UIComponentBase, UIData, UIForm, UIGraphic, UIInput, UIMessage, UIMessages, UINamingContainer, UIOutcomeTarget, UIOutput, UIPanel, UIParameter, UISelectBoolean, UISelectItem, UISelectItems, UISelectMany, UISelectOne, UIViewParameter, UIViewRoot

    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.

Method Summary
`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 Detail

### 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(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`

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

  Throws:
    `NullPointerException` - if either `context` or `state` are `null`

### isTransient

    boolean isTransient()

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

### 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`.

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002-2009 Sun Microsystems, Inc. All Rights Reserved.