Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * $Id: StateHolder.java,v 1.16 2005/12/05 16:42:43 edburns Exp $
   */
  
  /*
   * The contents of this file are subject to the terms
   * of the Common Development and Distribution License
   * (the License). You may not use this file except in
   * compliance with the License.
  * 
  * You can obtain a copy of the License at
  * https://javaserverfaces.dev.java.net/CDDL.html or
  * legal/CDDLv1.0.txt. 
  * See the License for the specific language governing
  * permission and limitations under the License.
  * 
  * When distributing Covered Code, include this CDDL
  * Header Notice in each file and include the License file
  * at legal/CDDLv1.0.txt.    
  * If applicable, add the following below the CDDL Header,
  * with the fields enclosed by brackets [] replaced by
  * your own identifying information:
  * "Portions Copyrighted [year] [name of copyright owner]"
  * 
  * [Name of File] [ver.__] [Date]
  * 
  * Copyright 2005 Sun Microsystems Inc. All Rights Reserved
  */
 
 package javax.faces.component;
 

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.

 
 
 public interface 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 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 javax.faces.application.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:
java.lang.NullPointerException if context is null
 
 
     public Object saveState(FacesContext context);

    

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:
java.lang.NullPointerException if either context or state are null
 
 
     public void restoreState(FacesContext contextObject state);

    

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

    public boolean isTransient();

    

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 participate in state saving or restoring, otherwise pass false.
 
    public void setTransient(boolean newTransientValue);
New to GrepCode? Check out our FAQ X