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  /* 
18  
19   */
20  
21  package org.apache.wsrp4j.consumer;
22  
23  import java.util.Iterator;
24  
25  import org.apache.wsrp4j.exception.WSRPException;
26  
27  /**
28   * A consumer based session which represents a user session with a certain producer.
29   * This user session contains one or more group sessions.
30   * 
31   * @see GroupSession
32   * 
33   * @author <a href="mailto:stephan.laertz@de.ibm.com">Stephan Laertz</a>
34   * @author <a href='mailto:peter.fischer@de.ibm.com'>Peter Fischer</a>
35   **/
36  public interface UserSession {
37  
38      /**
39       * Get ID of the user this session is bind to
40       * 
41       * @return User ID
42       **/
43      public String getUserID();
44  
45      /**
46       * Get ID of the producer this session is bind to
47       * 
48       * @return ID of the producer
49       **/
50      public String getProducerID();
51  
52      /**
53       * Get the group session for this group ID
54       *     
55       * @param groupID ID of the portlet application
56       * @return The a group session for the provided group ID or a new groupSession
57       **/
58      public GroupSessionMgr getGroupSession(String groupID) throws WSRPException;
59  
60      /**
61       * Get all group session
62       *      
63       * @return Iterator with all group sessions for the given producer access point
64       **/
65      public Iterator getAllGroupSessions();
66  
67      /**
68       * Set the ID of the user this session is bind to 
69       * 
70       * @param userID ID of the user
71       **/
72      public void setUserID(String userID);
73  
74      /**
75       * Set the ID of the producer this session is bind to.
76       * 
77       * @param producerID of the producer
78       **/
79      public void setProducerID(String producerID);
80  
81      /**
82       * Add a group session to the user session
83       * 
84       * @param groupSession A group session
85       **/
86      public void addGroupSession(GroupSession groupSession);
87  
88      /**
89       * Remove a group session from the user session
90       *      
91       * @param groupID ID of the portlet application
92       **/
93      public void removeGroupSession(String groupID);
94  
95      /**
96       * Remove all group sessions
97       *      
98       **/
99      public void removeAllGroupSessions();
100 }