View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements. See the NOTICE file distributed with this
4    * work for additional information regarding copyright ownership. The ASF
5    * licenses this file to You under the Apache License, Version 2.0 (the
6    * "License"); you may not use this file except in compliance with the License.
7    * You may obtain a copy of the License at
8    * 
9    * 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      /***
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  }