001: /*
002: * Copyright 2000-2001,2004 The Apache Software Foundation.
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016:
017: package org.apache.wsrp4j.consumer.driver;
018:
019: import java.util.Hashtable;
020: import java.util.Iterator;
021:
022: import org.apache.wsrp4j.consumer.GroupSession;
023: import org.apache.wsrp4j.consumer.GroupSessionMgr;
024: import org.apache.wsrp4j.consumer.UserSessionMgr;
025: import org.apache.wsrp4j.exception.WSRPException;
026:
027: public abstract class GenericUserSessionImpl extends InitCookieInfoImpl
028: implements UserSessionMgr {
029:
030: // ID of the user this session belongs to
031: private String userID = null;
032:
033: // ID of the producer this user session is bind to
034: private String producerID = null;
035:
036: // mapping access points to hashtable of group sessions
037: protected Hashtable groupSessions = null;
038:
039: public GenericUserSessionImpl(String producerID, String userID,
040: String markupURL) throws WSRPException {
041: super (markupURL);
042: this .producerID = producerID;
043: this .userID = userID;
044: }
045:
046: /**
047: * Get ID of the user this session is bind to
048: *
049: * @return User ID
050: **/
051: public String getUserID() {
052: return this .userID;
053: }
054:
055: /**
056: * Set the ID of the user this session is bind to
057: *
058: * @param userID ID of the user
059: **/
060: public void setUserID(String userID) {
061: if (userID != null) {
062: this .userID = userID;
063: }
064: }
065:
066: /**
067: * Get ID of the producer this session is bind to
068: *
069: * @return ID of the producer
070: **/
071: public String getProducerID() {
072: return this .producerID;
073: }
074:
075: /**
076: * Set the ID of the producer this session is bind to.
077: *
078: * @param producerID ID of the producer
079: **/
080: public void setProducerID(String producerID) {
081: this .producerID = producerID;
082: }
083:
084: /**
085: * Get the group session for this group ID
086: *
087: * @param groupID ID of the portlet application
088: * @return The a group session for the provided group ID or a new groupSession
089: **/
090: public abstract GroupSessionMgr getGroupSession(String groupID)
091: throws WSRPException;
092:
093: /**
094: * Add a group session to the user session
095: *
096: * @param groupSession A group session
097: **/
098: public void addGroupSession(GroupSession groupSession) {
099: if (groupSession != null) {
100: this .groupSessions.put(groupSession.getGroupID(),
101: groupSession);
102: }
103: }
104:
105: /**
106: * Get all group session
107: *
108: * @return Iterator with all group sessions for the given producer access point
109: **/
110: public Iterator getAllGroupSessions() {
111: return this .groupSessions.values().iterator();
112: }
113:
114: /**
115: * Remove a group session from the user session
116: *
117: * @param groupID ID of the portlet application
118: **/
119: public void removeGroupSession(String groupID) {
120: if (groupID != null) {
121: this .groupSessions.remove(groupID);
122: }
123: }
124:
125: /**
126: * Remove all group sessions
127: *
128: **/
129: public void removeAllGroupSessions() {
130: this .groupSessions.clear();
131: }
132:
133: /**
134: * Check if a group session exists for the given group ID
135: *
136: * @param groupID ID of the portlet group
137: * @return True if a group session exists for the provided group ID
138: **/
139: public boolean existsGroupSession(String groupID) {
140: if (groupID == null)
141: return false;
142:
143: return this .groupSessions.containsKey(groupID);
144: }
145:
146: protected void setGroupSessionTable(Hashtable groupSessions) {
147: this.groupSessions = groupSessions;
148: }
149: }
|