View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package javax.faces.component;
20  
21  /**
22   * <p>This interface is implemented by classes 
23   * that need to save state that are expected to be available only on the 
24   * current request.</p>
25   * 
26   * <p>An implementor <strong>must</strong> implement both {@link
27   * #saveTransientState} and {@link #restoreTransientState} methods in this class, since
28   * these two methods have a tightly coupled contract between themselves.
29   * In other words, if there is an inheritance hierarchy, it is not
30   * permissible to have the {@link #saveTransientState} and {@link #restoreTransientState}
31   * methods reside at different levels of the hierarchy.</p>
32   * 
33   * @since 2.1
34   * @author Leonardo Uribe (latest modification by $Author: bommel $)
35   * @version $Revision: 1187701 $ $Date: 2011-10-22 07:21:54 -0500 (Sat, 22 Oct 2011) $
36   */
37  public interface TransientStateHolder
38  {
39      /**
40       * <p>Return the object containing related "transient states".
41       * that could be used later to restore the "transient state".<p>
42       * 
43       * @param context
44       * @return object containing transient values
45       * @since 2.1
46       */
47      public java.lang.Object saveTransientState(javax.faces.context.FacesContext context);
48  
49      /**
50       * <p>Restore the "transient state" using the object passed as
51       * state.</p>
52       * 
53       * <p>If the <code>state</code>
54       * argument is <code>null</code> clear any previous transient
55       * state if any and return.</p>
56       * 
57       * @param context
58       * @param state the object containing transient values
59       * @since 2.1
60       */
61      public void restoreTransientState(javax.faces.context.FacesContext context,
62                               java.lang.Object state);
63  
64  }