All Downloads are FREE. Search and download functionalities are using the official Maven repository.

javax.faces.component.StateHolder Maven / Gradle / Ivy

Go to download

This is the master POM file for Oracle's Implementation of the JSF 2.1 Specification.

There is a newer version: 2.1
Show newest version
/*
 * $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;

import javax.faces.context.FacesContext;

/**
 *
 * 

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

* *

An implementor must implement both {@link * #saveState} and {@link #restoreState} 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 {@link #saveState} and {@link #restoreState} * 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 {@link #saveState} method on all those * instances as well. This method must not save the state * of children and facets. That is done via the {@link * 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 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 {@link #restoreState} method on all those * instances as well.

* * @throws NullPointerException if either context or * state are null */ public void restoreState(FacesContext context, Object 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.

* * @param newTransientValue boolean pass true if this Object * will participate in state saving or restoring, otherwise * pass false. */ public void setTransient(boolean newTransientValue); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy