source: contrib/MailArchiver/sources/src/serpro/mailarchiver/session/SessionMap.java @ 6785

Revision 6785, 2.5 KB checked in by rafaelraymundo, 12 years ago (diff)

Ticket #2946 - Liberado codigo do MailArchiver?. Documentação na subpasta DOCS.

Line 
1/**
2 * MailArchiver is an application that provides services for storing and managing e-mail messages through a Web Services SOAP interface.
3 * Copyright (C) 2012  Marcio Andre Scholl Levien and Fernando Alberto Reuter Wendt and Jose Ronaldo Nogueira Fonseca Junior
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Affero General Public License as
7 * published by the Free Software Foundation, either version 3 of the
8 * License, or (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 * GNU Affero General Public License for more details.
14 *
15 * You should have received a copy of the GNU Affero General Public License
16 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 */
18
19/******************************************************************************\
20*
21*  This product was developed by
22*
23*        SERVIÇO FEDERAL DE PROCESSAMENTO DE DADOS (SERPRO),
24*
25*  a government company established under Brazilian law (5.615/70),
26*  at Department of Development of Porto Alegre.
27*
28\******************************************************************************/
29
30package serpro.mailarchiver.session;
31
32import java.util.HashMap;
33import java.util.Map;
34import serpro.mailarchiver.util.Logger;
35
36public final class SessionMap {
37
38    private SessionMap() {}
39
40    private static final Logger log = Logger.getLocalLogger();
41
42    private static final Map<String, Session> currentSessions = new HashMap<String, Session>();
43
44    public static void put(Session session) {
45        synchronized(currentSessions) {
46            currentSessions.put(session.getSessionId(), session);
47        }
48    }
49
50    public static Session get(String sessionId) {
51        synchronized(currentSessions) {
52            return currentSessions.get(sessionId);
53        }
54    }
55
56    public static void remove(Session session) {
57        synchronized(currentSessions) {
58            currentSessions.remove(session.getSessionId());
59            boolean closeIndex = true;
60            for(Session s : currentSessions.values()) {
61                if(s.getUserId().equals(session.getUserId())) {
62                    closeIndex = false;
63                    break;
64                }
65            }
66            if(closeIndex) {
67                session.getIndex().close();
68            }
69        }
70    }
71}
Note: See TracBrowser for help on using the repository browser.