01: /*
02: * Copyright (c) 1998-2008 Caucho Technology -- all rights reserved
03: *
04: * This file is part of Resin(R) Open Source
05: *
06: * Each copy or derived work must preserve the copyright notice and this
07: * notice unmodified.
08: *
09: * Resin Open Source is free software; you can redistribute it and/or modify
10: * it under the terms of the GNU General Public License version 2
11: * as published by the Free Software Foundation.
12: *
13: * Resin Open Source is distributed in the hope that it will be useful,
14: * but WITHOUT ANY WARRANTY; without even the implied warranty of
15: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
16: * of NON-INFRINGEMENT. See the GNU General Public License for more
17: * details.
18: *
19: * You should have received a copy of the GNU General Public License
20: * along with Resin Open Source; if not, write to the
21: *
22: * Free Software Foundation, Inc.
23: * 59 Temple Place, Suite 330
24: * Boston, MA 02111-1307 USA
25: *
26: * @author Scott Ferguson
27: */
28:
29: package javax.faces.render;
30:
31: import java.io.*;
32:
33: import javax.faces.application.*;
34: import javax.faces.context.*;
35:
36: public abstract class ResponseStateManager {
37: public static final String RENDER_KIT_ID_PARAM = "javax.faces.RenderKitId";
38:
39: /**
40: * @Since 1.2
41: */
42: public static final String VIEW_STATE_PARAM = "javax.faces.ViewState";
43:
44: public void writeState(FacesContext context, Object state)
45: throws IOException {
46: StateManager.SerializedView view;
47:
48: if (state instanceof StateManager.SerializedView) {
49: view = (StateManager.SerializedView) state;
50: } else if (state instanceof Object[]) {
51: Object[] values = (Object[]) state;
52:
53: Application app = context.getApplication();
54: StateManager manager = app.getStateManager();
55:
56: view = manager.new SerializedView(values[0], values[1]);
57: } else
58: throw new IllegalStateException();
59:
60: writeState(context, view);
61: }
62:
63: @Deprecated
64: public void writeState(FacesContext context,
65: StateManager.SerializedView state) throws IOException {
66: }
67:
68: /**
69: * @Since 1.2
70: */
71: public Object getState(FacesContext context, String viewId) {
72: return new Object[] {
73: getTreeStructureToRestore(context, viewId),
74: getComponentStateToRestore(context) };
75: }
76:
77: @Deprecated
78: public Object getTreeStructureToRestore(FacesContext context,
79: String viewId) {
80: return null;
81: }
82:
83: @Deprecated
84: public Object getComponentStateToRestore(FacesContext context) {
85: return null;
86: }
87:
88: /**
89: * Since 1.2
90: */
91: public boolean isPostback(FacesContext context) {
92: ExternalContext extContext = context.getExternalContext();
93:
94: return !extContext.getRequestParameterMap().isEmpty();
95: }
96: }
|