1 /*
2 * Copyright (c) 2005 Regents of the University of California (Regents). Created
3 * by TELS, Graduate School of Education, University of California at Berkeley.
4 *
5 * This software is distributed under the GNU Lesser General Public License, v2.
6 *
7 * Permission is hereby granted, without written agreement and without license
8 * or royalty fees, to use, copy, modify, and distribute this software and its
9 * documentation for any purpose, provided that the above copyright notice and
10 * the following two paragraphs appear in all copies of this software.
11 *
12 * REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
13 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
14 * PURPOSE. THE SOFTWAREAND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED
15 * HEREUNDER IS PROVIDED "AS IS". REGENTS HAS NO OBLIGATION TO PROVIDE
16 * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
17 *
18 * IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT,
19 * SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS,
20 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
21 * REGENTS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
22 */
23 package net.sf.sail.core.session;
24
25 import java.util.Collection;
26 import java.util.Collections;
27 import java.util.HashSet;
28 import java.util.Set;
29
30 import net.sf.sail.core.beans.SessionContext;
31 import net.sf.sail.core.beans.event.SessionEventListener;
32 import net.sf.sail.core.beans.service.SessionService;
33 import net.sf.sail.core.entity.User;
34 import net.sf.sail.core.uuid.SessionUuid;
35
36
37 public class DefaultSessionService implements SessionService {
38
39 SessionContext session;
40
41 Set<User> users = new HashSet<User>();
42
43 public DefaultSessionService(SessionContext session) {
44 this.session = session;
45 }
46
47 public void userRequestsTermination() {
48 session.tryToTerminate();
49 }
50
51 public void addSessionEventListener(SessionEventListener sel) {
52 session.addSessionEventListener(sel);
53 }
54
55 public Collection getUsers() {
56 return Collections.unmodifiableCollection(users);
57 }
58
59 public void addUser(User user) {
60 users.add(user);
61 }
62
63 public void removeUser(User user) {
64 users.remove(user);
65 }
66
67 public SessionUuid getSessionId() {
68 return session.getSessionId();
69 }
70
71 }