01: /*
02: * This file is part of PFIXCORE.
03: *
04: * PFIXCORE is free software; you can redistribute it and/or modify
05: * it under the terms of the GNU Lesser General Public License as published by
06: * the Free Software Foundation; either version 2 of the License, or
07: * (at your option) any later version.
08: *
09: * PFIXCORE is distributed in the hope that it will be useful,
10: * but WITHOUT ANY WARRANTY; without even the implied warranty of
11: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12: * GNU Lesser General Public License for more details.
13: *
14: * You should have received a copy of the GNU Lesser General Public License
15: * along with PFIXCORE; if not, write to the Free Software
16: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17: *
18: */
19:
20: package de.schlund.pfixxml.serverutil;
21:
22: import java.io.Serializable;
23: import java.text.SimpleDateFormat;
24: import java.util.Date;
25:
26: public class SessionData implements Serializable {
27: private final String id;
28: private final long creation;
29: private long lastaccess;
30: private final String serverName;
31: private final String remoteAddr;
32:
33: public SessionData() {
34: throw new IllegalArgumentException(); // TODO: castor
35: }
36:
37: public SessionData(String id, String serverName, String remoteAddr) {
38: this .id = id;
39: this .serverName = serverName;
40: this .remoteAddr = remoteAddr;
41: this .creation = System.currentTimeMillis();
42: this .lastaccess = creation;
43: }
44:
45: public String getId() {
46: return id;
47: }
48:
49: public String getServerName() {
50: return serverName;
51: }
52:
53: public String getRemoteAddr() {
54: return remoteAddr;
55: }
56:
57: public void updateTimestamp() {
58: lastaccess = System.currentTimeMillis();
59: }
60:
61: public long getCreation() {
62: return creation;
63: }
64:
65: public String getCreationTime() {
66: return time(creation);
67: }
68:
69: /**
70: * Get the value of the last access to the session (access to subframes isn't counted)
71: * @return value of lastAccess.
72: */
73: public long getLastAccess() {
74: return lastaccess;
75: }
76:
77: public String getLastAccessTime() {
78: return time(lastaccess);
79: }
80:
81: private static final SimpleDateFormat fmt = new SimpleDateFormat(
82: "HH:mm:ss");
83:
84: private String time(long millis) {
85: return fmt.format(new Date(millis));
86: }
87: }
|