01: /*
02: * Version: MPL 1.1/GPL 2.0/LGPL 2.1
03: *
04: * "The contents of this file are subject to the Mozilla Public License
05: * Version 1.1 (the "License"); you may not use this file except in
06: * compliance with the License. You may obtain a copy of the License at
07: * http://www.mozilla.org/MPL/
08: *
09: * Software distributed under the License is distributed on an "AS IS"
10: * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
11: * License for the specific language governing rights and limitations under
12: * the License.
13: *
14: * The Original Code is ICEfaces 1.5 open source software code, released
15: * November 5, 2006. The Initial Developer of the Original Code is ICEsoft
16: * Technologies Canada, Corp. Portions created by ICEsoft are Copyright (C)
17: * 2004-2006 ICEsoft Technologies Canada, Corp. All Rights Reserved.
18: *
19: * Contributor(s): _____________________.
20: *
21: * Alternatively, the contents of this file may be used under the terms of
22: * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"
23: * License), in which case the provisions of the LGPL License are
24: * applicable instead of those above. If you wish to allow use of your
25: * version of this file only under the terms of the LGPL License and not to
26: * allow others to use your version of this file under the MPL, indicate
27: * your decision by deleting the provisions above and replace them with
28: * the notice and other provisions required by the LGPL License. If you do
29: * not delete the provisions above, a recipient may use your version of
30: * this file under either the MPL or the LGPL License."
31: *
32: */
33:
34: package com.icesoft.faces.async.render;
35:
36: import com.icesoft.faces.webapp.xmlhttp.PersistentFacesState;
37: import com.icesoft.faces.webapp.xmlhttp.RenderingException;
38:
39: /**
40: * The Renderable interface represents the {@link com.icesoft.faces.webapp.xmlhttp.PersistentFacesState
41: * PersistentFacesState} of a managed bean to the rest of the classes in the
42: * Rendering API.
43: *
44: * @author ICEsoft Technologies, Inc.
45: */
46: public interface Renderable {
47:
48: /**
49: * Return the reference to the {@link com.icesoft.faces.webapp.xmlhttp.PersistentFacesState
50: * PersistentFacesState} associated with this Renderable.
51: * <p/>
52: * The typical (and recommended usage) is to get and hold a reference to the
53: * PersistentFacesState in the constructor of your managed bean and return
54: * that reference from this method.
55: *
56: * @return the PersistentFacesState associated with this Renderable
57: */
58: public PersistentFacesState getState();
59:
60: /**
61: * Callback method that is called if any exception occurs during an attempt
62: * to render this Renderable.
63: * <p/>
64: * It is up to the application developer to implement appropriate policy
65: * when a RenderingException occurs. Different policies might be
66: * appropriate based on the severity of the exception. For example, if the
67: * exception is fatal (the session has expired), no further attempts should
68: * be made to render this Renderable and the application may want to remove
69: * the Renderable from some or all of the {@link GroupAsyncRenderer}s it
70: * belongs to. If it is a transient exception (like a client's connection is
71: * temporarily unavailable) then the application has the option of removing
72: * the Renderable from GroupRenderers or leaving them and allowing another
73: * render call to be attempted.
74: *
75: * @param renderingException The exception that occurred when attempting to
76: * render this Renderable.
77: */
78: public void renderingException(RenderingException renderingException);
79:
80: }
|