1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.cache;
18
19 import java.util.List;
20 import java.util.Set;
21
22 import org.apache.pluto.om.entity.PortletEntity;
23 import org.apache.pluto.om.window.PortletWindow;
24
25 /***
26 * {@link org.apache.jetspeed.cache.impl.PortletWindowCache} is an abstraction of a caching mechanism for use
27 * within {@link org.apache.jetspeed.container.window.impl.PortletWindowAccessorImpl}.
28 *
29 * @author <a href="mailto:scott.t.weaver@gmail.com">Scott T. Weaver</a>
30 * @see PortletWindowAccessorImpl
31 * @see EhPortletWindowCache
32 *
33 */
34 public interface PortletWindowCache
35 {
36 /***
37 * Gets a {@link PortletWindow} from the cache.
38 *
39 * @param windowId Id of the window to get from the cache.
40 * @return {@link PortletWindow} whose <code>id</code> to
41 * {@link PortletWindow#getId()} or <code>null</code> if no window exists that matches
42 * <code>windowId</code>.
43 */
44 PortletWindow getPortletWindow(String windowId);
45
46 /***
47 * Gets a {@link PortletWindow} from the cache whose {@link PortletEntity}'s ({@link PortletWindow#getPortletEntity()})
48 * equals <code>portletEntityId</code>.
49 *
50 * @param portletEntityId id of {@link PortletEntity} whose window want want to retrieve from cache.
51 * @return {@link PortletWindow} whose {@link PortletEntity}'s id equals <code>portletEntityId</code>
52 * or <code>null</code> if no windows exists in the cache that match said criteria.
53 */
54 PortletWindow getPortletWindowByEntityId(String portletEntityId);
55
56 /***
57 * Stores a {@link PortletWindow} in the cache using the {@link PortletWindow#getId()#toString()}
58 * as the key for the cache.
59 *
60 * @param window {@link PortletWindow} to put into the cache.
61 */
62 void putPortletWindow(PortletWindow window);
63
64 /***
65 * Removes a {@link PortletWindow} from cache using the <code>windowId</code>
66 * as the cache key.
67 *
68 * @param windowId Id of the {@link PortletWindow} we want to remove from the cache.
69 */
70 void removePortletWindow(String windowId);
71
72 /***
73 * Removes a {@link PortletWindow} from the cache whose {@link PortletEntity}'s id
74 * matches <code>portletEntityId</code>.
75 *
76 * @param portletEntityId id of the {@link PortletEntity} whose parent {@link PortletWindow}
77 * is to be removed from the cache.
78 */
79 void removePortletWindowByPortletEntityId(String portletEntityId);
80
81 /***
82 *
83 * @return {@link List} of all the {@link PortletWindow}s in the cache. If no cache
84 * entries exist an empty list is returned. Never returns <code>null</code>.
85 */
86 Set getAllPortletWindows();
87
88 }