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;
20:
21: import javax.servlet.http.HttpServletRequest;
22: import javax.servlet.ServletContext;
23:
24: import org.apache.struts.action.ActionForm;
25: import org.apache.struts.action.ActionMapping;
26:
27: /**
28: * Base class for user-defined global state and fallback controller logic. A specific instance of
29: * this class (based on the Global.app/Global.java source file in the "global" package) is created and stored in
30: * the user session before any {@link PageFlowController} is created, and unless it is explicitly
31: * removed from the session, it is not freed until the session is invalidated.
32: * <p>
33: * Actions that are not handled by the current {@link PageFlowController} "bubble" up to the
34: * current GlobalApp instance, which gets a chance to handle them in user-defined action methods.
35: * Uncaught exceptions also bubble through the GlobalApp instance, which has a chance to catch
36: * them.
37: * <p>
38: * Data in the current GlobalApp instance can be accessed by databinding tags using the <code>globalApp</code> scope.
39: *
40: * @deprecated Use a {@link SharedFlowController} instead.
41: * @see PageFlowController
42: */
43: public class GlobalApp extends SharedFlowController {
44: /**
45: * Get the URI for the webapp.
46: * @return "/".
47: */
48: public String getURI() {
49: return "/";
50: }
51:
52: public String getDisplayName() {
53: return GLOBALAPP_SOURCEFILE_NAME;
54: }
55:
56: /**
57: * @deprecated Only page flows ({@link PageFlowController}s) can be nested.
58: */
59: public boolean isNestable() {
60: return false;
61: }
62:
63: /**
64: * Store information about the most recent action invocation.
65: */
66: void savePreviousActionInfo(ActionForm form,
67: HttpServletRequest request, ActionMapping mapping,
68: ServletContext servletContext) {
69: // Do nothing here -- Global.app actions do not 'count' as actions in the current page flow, unlike shared
70: // flow actions. This is basically deprecated behavior.
71: }
72: }
|