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   */
35  public interface TransientStateHolder
36  {
37      /**
38       * <p>Return the object containing related "transient states".
39       * that could be used later to restore the "transient state".<p>
40       * 
41       * @param context
42       * @return object containing transient values
43       * @since 2.1
44       */
45      public java.lang.Object saveTransientState(javax.faces.context.FacesContext context);
46  
47      /**
48       * <p>Restore the "transient state" using the object passed as
49       * state.</p>
50       * 
51       * <p>If the <code>state</code>
52       * argument is <code>null</code> clear any previous transient
53       * state if any and return.</p>
54       * 
55       * @param context
56       * @param state the object containing transient values
57       * @since 2.1
58       */
59      public void restoreTransientState(javax.faces.context.FacesContext context,
60                               java.lang.Object state);
61  
62  }