1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.container.state.impl;
18
19 import java.io.UnsupportedEncodingException;
20 import java.util.HashMap;
21 import java.util.Iterator;
22 import java.util.Map;
23
24 import javax.portlet.PortletMode;
25 import javax.portlet.WindowState;
26
27 import org.apache.jetspeed.cache.JetspeedContentCache;
28 import org.apache.pluto.om.window.PortletWindow;
29
30 /***
31 * HybridNavigationalState
32 *
33 * Only encodes render parameters that start with a given prefix
34 *
35 * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
36 * @version $Id: AbstractNavigationalState.java 333093 2005-11-13 18:42:42Z taylor $
37 */
38 public class HybridNavigationalState extends SessionNavigationalState
39 {
40 protected String prefix;
41
42 public HybridNavigationalState(NavigationalStateCodec codec, String prefix, JetspeedContentCache cache)
43 {
44 super(codec, cache);
45 this.prefix = prefix;
46 }
47
48 public String encode(PortletWindow window, Map parameters, PortletMode mode, WindowState state, boolean action)
49 throws UnsupportedEncodingException
50 {
51 Map subset = new HashMap();
52 Iterator params = parameters.keySet().iterator();
53 while (params.hasNext())
54 {
55 String key = (String)params.next();
56 if (key.startsWith(prefix))
57 {
58
59 subset.put(key, parameters.get(key));
60 }
61 }
62 return super.encode(window, subset, mode, state, action);
63 }
64
65 public boolean isNavigationalParameterStateFull()
66 {
67 return true;
68 }
69
70 public boolean isRenderParameterStateFull()
71 {
72 return false;
73 }
74
75
76 }