01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one
03: * or more contributor license agreements. See the NOTICE file
04: * distributed with this work for additional information
05: * regarding copyright ownership. The ASF licenses this file
06: * to you under the Apache License, Version 2.0 (the
07: * "License"); you may not use this file except in compliance
08: * with the License. You may obtain a copy of the License at
09: *
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 org.apache.myfaces.lifecycle;
20:
21: import javax.faces.FacesException;
22: import javax.faces.component.UIComponent;
23: import javax.faces.context.ExternalContext;
24: import javax.faces.context.FacesContext;
25:
26: /**
27: * Support class for restore view phase
28: *
29: * @author Mathias Broekelmann (latest modification by $Author: mbr $)
30: * @version $Revision: 517403 $ $Date: 2007-03-12 22:17:00 +0100 (Mo, 12 Mrz 2007) $
31: */
32: public interface RestoreViewSupport {
33: /**
34: * <p>
35: * Calculates the view id from the given faces context by the following algorithm
36: * </p>
37: * <ul>
38: * <li>lookup the viewid from the request attribute "javax.servlet.include.path_info"
39: * <li>if null lookup the value for viewid by {@link ExternalContext#getRequestPathInfo()}
40: * <li>if null lookup the value for viewid from the request attribute "javax.servlet.include.servlet_path"
41: * <li>if null lookup the value for viewid by {@link ExternalContext#getRequestServletPath()}
42: * <li>if null throw a {@link FacesException}
43: * </ul>
44: */
45: String calculateViewId(FacesContext facesContext);
46:
47: /**
48: * Processes the component tree. For each component (including the given one) in the tree determine if a value
49: * expression for the attribute "binding" is defined. If the expression is not null set the component instance to
50: * the value of this expression
51: *
52: * @param facesContext
53: * @param component
54: * the root component
55: */
56: void processComponentBinding(FacesContext facesContext,
57: UIComponent component);
58:
59: /**
60: * <p>
61: * Determine if the current request is a post back by the following algorithm.
62: * </p>
63: * <p>
64: * Find the render-kit-id for the current request by calling calculateRenderKitId() on the Application’s
65: * ViewHandler. Get that RenderKit’s ResponseStateManager and call its isPostback() method, passing the given
66: * FacesContext.
67: * </p>
68: *
69: * @param facesContext
70: * @return
71: */
72: boolean isPostback(FacesContext facesContext);
73: }
|