01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: *
17: * $Header:$
18: */
19: package org.apache.beehive.netui.pageflow.handler;
20:
21: import org.apache.struts.action.ActionForward;
22: import org.apache.struts.action.ActionMapping;
23: import org.apache.struts.action.ActionForm;
24: import org.apache.struts.config.ModuleConfig;
25: import org.apache.struts.config.ExceptionConfig;
26: import org.apache.beehive.netui.pageflow.PreviousPageInfo;
27: import org.apache.beehive.netui.pageflow.PageFlowController;
28: import org.apache.beehive.netui.pageflow.Forward;
29: import org.apache.beehive.netui.pageflow.PageFlowStack;
30: import org.apache.beehive.netui.pageflow.config.PageFlowExceptionConfig;
31: import org.apache.beehive.netui.pageflow.interceptor.action.ActionInterceptor;
32:
33: /**
34: * Handler for action forward processing.
35: */
36: public interface ActionForwardHandler extends Handler {
37: /**
38: * Perform additional processing on a given Struts ActionForward, and perform any necessary updates to the request
39: * and user session (including updates to the PageFlowController nesting stack). This method may <em>replace</em>
40: * the given ActionForward with a new one.
41: *
42: * @param context the current FlowControllerHandlerContext.
43: * @param fwd the ActionForward object to process.
44: * @param actionMapping the Struts config object for the current action, if there is one (<code>null</code>
45: * if there is none).
46: * @param exceptionConfig the Struts config object for the current exception-handler, if one is being run
47: * <code>null</code> if there is none).
48: * @param actionName the name of the currently-requested action.
49: * @param altModuleConfig an alternate Struts module configuration object for resolving a forward, if it can't be
50: * resolved from the current ActionMapping (or if there is no current ActionMapping).
51: * @param form the Struts ActionForm created for the current action. May be <code>null</code>.
52: * @return the modified ActionForward object, or a replacement one.
53: */
54: ActionForward processForward(FlowControllerHandlerContext context,
55: ActionForward fwd, ActionMapping actionMapping,
56: ExceptionConfig exceptionConfig, String actionName,
57: ModuleConfig altModuleConfig, ActionForm form);
58:
59: ActionForward doAutoViewRender(
60: FlowControllerHandlerContext context,
61: ActionMapping mapping, ActionForm form);
62:
63: ActionForward doReturnToPage(FlowControllerHandlerContext context,
64: PreviousPageInfo prevPageInfo,
65: PageFlowController currentPageFlow, ActionForm currentForm,
66: String actionName, Forward pageFlowFwd);
67:
68: ActionForward doReturnToAction(
69: FlowControllerHandlerContext context, String actionName,
70: Forward pageFlowFwd);
71:
72: ActionForward doNestingReturn(FlowControllerHandlerContext context,
73: Forward pageFlowFwd, ActionMapping mapping, ActionForm form);
74:
75: ActionForward handleInterceptorReturn(
76: FlowControllerHandlerContext context,
77: PageFlowController poppedPageFlow,
78: PageFlowStack.PushedPageFlow pushedPageFlowWrapper,
79: String returnAction, ActionMapping actionMapping,
80: ActionForm form, ActionInterceptor interceptor);
81: }
|