001: package org.getahead.dwrdemo.arac;
002:
003: import java.util.Date;
004:
005: import javax.servlet.http.HttpServletRequest;
006:
007: import org.directwebremoting.ScriptSession;
008: import org.directwebremoting.WebContext;
009: import org.directwebremoting.WebContextFactory;
010:
011: /**
012: *
013: */
014: public class Client {
015: /**
016: * @param name
017: * @param session
018: */
019: public Client(String name, ScriptSession session) {
020: this .name = name;
021: this .session = session;
022:
023: WebContext wctx = WebContextFactory.get();
024: HttpServletRequest request = wctx.getHttpServletRequest();
025: type = request.getHeader("User-Agent");
026:
027: page = wctx.getCurrentPage();
028:
029: created = new Date();
030: }
031:
032: /**
033: * @return the id
034: */
035: public int getId() {
036: return id;
037: }
038:
039: /**
040: * @return the name
041: */
042: public String getName() {
043: return name;
044: }
045:
046: /**
047: * @param name
048: */
049: public void setName(String name) {
050: this .name = name;
051: }
052:
053: /**
054: * @return the session
055: */
056: public ScriptSession getSession() {
057: return session;
058: }
059:
060: /**
061: * @return the type
062: */
063: public String getType() {
064: return type;
065: }
066:
067: /**
068: * @return the page
069: */
070: public String getPage() {
071: return page;
072: }
073:
074: /**
075: * @return the created
076: */
077: public Date getCreated() {
078: return created;
079: }
080:
081: /**
082: * @return the lastPinged
083: */
084: public Date getLastPinged() {
085: return lastPinged;
086: }
087:
088: /**
089: * @param lastPinged the lastPinged to set
090: */
091: public void setLastPinged(Date lastPinged) {
092: this .lastPinged = lastPinged;
093: }
094:
095: /**
096: * @return the lastMessaged
097: */
098: public Date getLastMessaged() {
099: return lastMessaged;
100: }
101:
102: /**
103: * @param lastMessaged the lastMessaged to set
104: */
105: public void setLastMessaged(Date lastMessaged) {
106: this .lastMessaged = lastMessaged;
107: }
108:
109: private int id = nextClientId();
110: private String name;
111: private ScriptSession session;
112: private String type;
113: private String page;
114: private Date created;
115: private Date lastPinged;
116: private Date lastMessaged;
117:
118: private static synchronized int nextClientId() {
119: synchronized (Client.class) {
120: return nextClientId++;
121: }
122: }
123:
124: private static int nextClientId = 0;
125: }
|