1   /*
2    * Copyright 2000-2001,2004 The Apache Software Foundation.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * 
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    * 
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package org.apache.wsrp4j.consumer;
18  
19  import java.util.Iterator;
20  
21  import oasis.names.tc.wsrp.v1.types.SessionContext;
22  
23  /**
24   * Defines a session object at the consumer-side
25   * to store remote portlet related information that
26   * are needed to interact with the portlet. 
27   * Since a session context is not mandatory in WSRP
28   * a consumer portlet instance key is taken to
29   * uniquely identify a portlet session.
30   * 
31   **/
32  public interface PortletSession {
33      /**
34       * Get the portlet handle which uniquely identifies the
35       * portlet session at the consumer side.
36       * 
37       * @return The portlet handle
38       **/
39      public String getPortletHandle();
40  
41      /**
42       * Set the portlet handle of the portlet
43       * this session belongs to.
44       * 
45       * @param portletHandle The portlet handle 
46       **/
47      public void setPortletHandle(String portletHandle);
48  
49      /**
50       * Get the WSRP session context of
51       * the portlet instance. If no session context was set
52       * from the producer this method returns null.
53       * 
54       * @return The the session context if set from the producer 
55       *         or null otherwise.
56       **/
57      public SessionContext getSessionContext();
58  
59      /**
60       * Set the session context of the portlet instance.
61       * 
62       * @param sessionContext The session context.
63       **/
64      public void setSessionContext(SessionContext sessionContext);
65  
66      /**
67       * Get the <code>SimplePortletWindowSession</code> of the portlet window with the given ID.
68       * 
69       * @param windowID The ID of the portlet window
70       * @return The <code>PorletWindowSession</code> with the given ID.    
71       **/
72      public PortletWindowSession getPortletWindowSession(String windowID);
73  
74      /**
75       * Get all window session which belong to the portlet session
76       * 
77       * @return An Iterator of <code>SimplePortletWindowSession</code> objects.     
78       **/
79      public Iterator getAllPorletWindowSessions();
80  
81      /**
82       * Remove the porlet window session with the given window id.
83       * 
84       * @param windowID The ObjectID of the portlet window whichs session shoul dbe removed
85       * @return The portlet window session which has been removed or null if the session did not exist.    
86       **/
87      public PortletWindowSession removePortletWindowSession(String windowID);
88  
89      /**
90       * Remove all portlet window sessions which  belong to this portlet session.
91       **/
92      public void removeAllPortletWindowSessions();
93  }