1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package javax.faces.render;
20
21 import javax.faces.application.StateManager;
22 import javax.faces.application.StateManager.SerializedView;
23 import javax.faces.context.FacesContext;
24 import java.io.IOException;
25
26
27
28
29
30
31
32
33 public abstract class ResponseStateManager
34 {
35 public static final String RENDER_KIT_ID_PARAM = "javax.faces.RenderKitId";
36 public static final String VIEW_STATE_PARAM = "javax.faces.ViewState";
37
38 public void writeState(FacesContext context, Object state) throws IOException
39 {
40 SerializedView view;
41 if (state instanceof SerializedView)
42 {
43 view = (SerializedView)state;
44 }
45 else if (state instanceof Object[])
46 {
47 Object[] structureAndState = (Object[])state;
48
49 if (structureAndState.length == 2)
50 {
51 Object structureObj = structureAndState[0];
52 Object stateObj = structureAndState[1];
53
54 StateManager stateManager = context.getApplication().getStateManager();
55 view = stateManager.new SerializedView(structureObj, stateObj);
56 }
57 else
58 {
59 throw new IOException("The state should be an array of Object[] of lenght 2");
60 }
61 }
62 else
63 {
64 throw new IOException("The state should be an array of Object[] of lenght 2, or a SerializedView instance");
65 }
66
67 writeState(context, view);
68 }
69
70
71
72
73
74 public void writeState(FacesContext context, StateManager.SerializedView state) throws IOException
75 {
76
77 }
78
79
80
81
82
83
84
85
86 public String getViewState(FacesContext context, Object state)
87 {
88
89
90 return null;
91 }
92
93
94
95
96 public Object getState(FacesContext context, String viewId)
97 {
98 Object[] structureAndState = new Object[2];
99 structureAndState[0] = getTreeStructureToRestore(context, viewId);
100 structureAndState[1] = getComponentStateToRestore(context);
101 return structureAndState;
102 }
103
104
105
106
107 public Object getTreeStructureToRestore(FacesContext context, String viewId)
108 {
109 return null;
110 }
111
112
113
114
115 public Object getComponentStateToRestore(FacesContext context)
116 {
117 return null;
118 }
119
120
121
122
123
124
125 public boolean isPostback(FacesContext context)
126 {
127 return context.getExternalContext().getRequestParameterMap().containsKey(ResponseStateManager.VIEW_STATE_PARAM);
128 }
129
130 }