01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with this
04: * work for additional information regarding copyright ownership. The ASF
05: * licenses this file to You under the Apache License, Version 2.0 (the
06: * "License"); you may not use this file except in compliance with the License.
07: * You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
13: * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14: * License for the specific language governing permissions and limitations under
15: * the License.
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: * Gets a {@link PortletWindow} from the cache.
37: *
38: * @param windowId Id of the window to get from the cache.
39: * @return {@link PortletWindow} whose <code>id</code> to
40: * {@link PortletWindow#getId()} or <code>null</code> if no window exists that matches
41: * <code>windowId</code>.
42: */
43: PortletWindow getPortletWindow(String windowId);
44:
45: /**
46: * Gets a {@link PortletWindow} from the cache whose {@link PortletEntity}'s ({@link PortletWindow#getPortletEntity()})
47: * equals <code>portletEntityId</code>.
48: *
49: * @param portletEntityId id of {@link PortletEntity} whose window want want to retrieve from cache.
50: * @return {@link PortletWindow} whose {@link PortletEntity}'s id equals <code>portletEntityId</code>
51: * or <code>null</code> if no windows exists in the cache that match said criteria.
52: */
53: PortletWindow getPortletWindowByEntityId(String portletEntityId);
54:
55: /**
56: * Stores a {@link PortletWindow} in the cache using the {@link PortletWindow#getId()#toString()}
57: * as the key for the cache.
58: *
59: * @param window {@link PortletWindow} to put into the cache.
60: */
61: void putPortletWindow(PortletWindow window);
62:
63: /**
64: * Removes a {@link PortletWindow} from cache using the <code>windowId</code>
65: * as the cache key.
66: *
67: * @param windowId Id of the {@link PortletWindow} we want to remove from the cache.
68: */
69: void removePortletWindow(String windowId);
70:
71: /**
72: * Removes a {@link PortletWindow} from the cache whose {@link PortletEntity}'s id
73: * matches <code>portletEntityId</code>.
74: *
75: * @param portletEntityId id of the {@link PortletEntity} whose parent {@link PortletWindow}
76: * is to be removed from the cache.
77: */
78: void removePortletWindowByPortletEntityId(String portletEntityId);
79:
80: /**
81: *
82: * @return {@link List} of all the {@link PortletWindow}s in the cache. If no cache
83: * entries exist an empty list is returned. Never returns <code>null</code>.
84: */
85: Set getAllPortletWindows();
86:
87: }
|