package com.diodesoftware.scb.tables;
import com.diodesoftware.dbmapper.DatabaseColumn;
import com.diodesoftware.dbmapper.DatabaseColumnType;
import com.diodesoftware.dbmapper.DatabaseEntry;
import org.apache.log4j.Logger;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Calendar;
/**
* Copyright 2010 Rob Mayhew
* User: rob
* Date: Oct 15, 2010
*/
public class Bob implements DatabaseEntry
{
private Calendar visit = Calendar.getInstance();
private String uri;
private String userAgent;
private String sessionId;
private String ip;
private int number;
private static Logger log = Logger.getLogger(Bob.class);
private DatabaseColumn[] columns = new DatabaseColumn[]{
new DatabaseColumn("Visit", DatabaseColumnType.DATE12),
new DatabaseColumn("Uri", DatabaseColumnType.CHAR_200),
new DatabaseColumn("UserAgent", DatabaseColumnType.CHAR_200),
new DatabaseColumn("SessionId", DatabaseColumnType.CHAR_200),
new DatabaseColumn("Ip", DatabaseColumnType.CHAR_100),
};
public Bob()
{
}
public Bob(HttpServletRequest request)
{
HttpSession httpSession = request.getSession();
sessionId = trimTo(httpSession.getId(),200);
ip = trimTo(request.getRemoteAddr(),100);
userAgent = trimTo(request.getHeader("User-Agent"),200);
uri = request.getRequestURI();
}
public DatabaseColumn[] columns()
{
return columns;
}
public int getNumber()
{
return number;
}
public void setNumber(int number)
{
this.number = number;
}
public String getIp()
{
return ip;
}
public void setIp(String ip)
{
this.ip = trimTo(ip,100);
}
public String getSessionId()
{
return sessionId;
}
public void setSessionId(String sessionId)
{
this.sessionId = trimTo(sessionId, 200);
}
public String getUserAgent()
{
return userAgent;
}
public void setUserAgent(String userAgent)
{
this.userAgent = trimTo(userAgent,200);
}
public Calendar getVisit()
{
return visit;
}
public void setVisit(Calendar visit)
{
this.visit = visit;
}
public String getUri()
{
return uri;
}
public void setUri(String uri)
{
this.uri = uri;
}
private String trimTo(String s, int length)
{
if(s == null)return null;
if(s.length() > length)
return s.substring(0,length);
return s;
}
}