org.locomotive.loco.store.session
Class SessionStoreJdbc

java.lang.Object
  |
  +--org.locomotive.loco.store.session.SessionStore
        |
        +--org.locomotive.loco.store.session.SessionStoreJdbc
Direct Known Subclasses:
SessionStoreJdbcCloudscape, SessionStoreJdbcInformix, SessionStoreJdbcInterbase, SessionStoreJdbcMysql, SessionStoreJdbcOracle, SessionStoreJdbcPostgresql, SessionStoreJdbcSolid

public class SessionStoreJdbc
extends SessionStore


Constructor Summary
SessionStoreJdbc()
           
 
Method Summary
 void associateUser(java.sql.Connection conn, User user, long sid)
          associate a user with this session, persistantly.
 long createNewSession(java.sql.Connection conn, int srid, int userid, java.sql.Timestamp expire)
          Saves a new Session and returns its sid
 void expire(java.sql.Connection conn, long sid, java.sql.Timestamp expireTime)
          expires this session, in the database returns false if the operation failed
 LocoSessionRow getLocoSessionRow(java.sql.Connection conn, long sid)
          Returns an individual session row if it can be found.
protected  java.math.BigInteger getNextSessionId(java.sql.Connection conn)
          Returns the next available id to use when saving a new session
 java.util.Hashtable getSessionObjects(java.sql.Connection conn, long sid)
          Returns the objects for the individual session
 void removeObjects(java.sql.Connection conn, long sid)
          Removes the objects for this session, either from the cache, if it's being used, or from the database
 void resetExpiration(java.sql.Connection conn, long sid, java.sql.Timestamp expireTime)
          Advances the expiration time of the session by exp_seconds if the session is persistant, the new time will be committed to the session database
 void storeObjects(java.sql.Connection conn, long sid, java.util.Hashtable objects)
          Stores the session_objects table in the database.
 void storeSessionObjects(java.sql.Connection conn, java.util.Hashtable objects)
          Saves a new Session and returns its sid
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SessionStoreJdbc

public SessionStoreJdbc()
Method Detail

getNextSessionId

protected java.math.BigInteger getNextSessionId(java.sql.Connection conn)
                                         throws IdException
Description copied from class: SessionStore
Returns the next available id to use when saving a new session
Overrides:
getNextSessionId in class SessionStore
Tags copied from class: SessionStore
Parameters:
conn - a JDBC connection with access to the Loco id table
Throws:
IdException - if the id could not be generated

associateUser

public void associateUser(java.sql.Connection conn,
                          User user,
                          long sid)
                   throws FailedSessionException
Description copied from class: SessionStore
associate a user with this session, persistantly. Authentication should be handled externally
Overrides:
associateUser in class SessionStore
Tags copied from class: SessionStore
Parameters:
conn - a JDBC connection with access to the Loco tables
user - the user to be associated
sid - the session id
Throws:
FailedSessionException - if there is a database storage problem

expire

public void expire(java.sql.Connection conn,
                   long sid,
                   java.sql.Timestamp expireTime)
            throws FailedSessionException
Description copied from class: SessionStore
expires this session, in the database returns false if the operation failed
Overrides:
expire in class SessionStore
Tags copied from class: SessionStore
Parameters:
conn - a JDBC connection with access to the Loco session tables
sid - the session id
expireTime - The timestamp
Throws:
FailedSessionException - if the session cannot be marked in the database

storeObjects

public void storeObjects(java.sql.Connection conn,
                         long sid,
                         java.util.Hashtable objects)
                  throws java.sql.SQLException
Description copied from class: SessionStore
Stores the session_objects table in the database. Should be called to store the session's resources after the session has been used for a request, if caching is not being used.
Overrides:
storeObjects in class SessionStore
Tags copied from class: SessionStore
Parameters:
conn - a JDBC connection with access to the Loco session tables
sid - the session id
objects - the hashtable of objects to be saved

removeObjects

public void removeObjects(java.sql.Connection conn,
                          long sid)
                   throws FailedSessionException
Description copied from class: SessionStore
Removes the objects for this session, either from the cache, if it's being used, or from the database
Overrides:
removeObjects in class SessionStore
Tags copied from class: SessionStore
Parameters:
conn - a JDBC connection with access to the Loco session tables
sid - the session id
Throws:
FailedSessionException - if the session cannot be marked in the database

resetExpiration

public void resetExpiration(java.sql.Connection conn,
                            long sid,
                            java.sql.Timestamp expireTime)
                     throws FailedSessionException
Description copied from class: SessionStore
Advances the expiration time of the session by exp_seconds if the session is persistant, the new time will be committed to the session database
Overrides:
resetExpiration in class SessionStore
Tags copied from class: SessionStore
Parameters:
conn - a JDBC connection with access to the Loco session tables
sid - the session id
expireTime - The timestamp
Throws:
FailedSessionException - if there is a database error

getLocoSessionRow

public LocoSessionRow getLocoSessionRow(java.sql.Connection conn,
                                        long sid)
                                 throws FailedSessionException
Description copied from class: SessionStore
Returns an individual session row if it can be found. Returns an object because there are multiple return values The LocoSessionRow is a prime candidate for a pool to reduce object creation/destruction
Overrides:
getLocoSessionRow in class SessionStore
Tags copied from class: SessionStore
Parameters:
conn - a JDBC connection with access to the Loco session tables
sid - the session id
Throws:
FailedSessionException - if there is a database error or the session cannot be found

getSessionObjects

public java.util.Hashtable getSessionObjects(java.sql.Connection conn,
                                             long sid)
                                      throws FailedSessionException
Description copied from class: SessionStore
Returns the objects for the individual session
Overrides:
getSessionObjects in class SessionStore
Tags copied from class: SessionStore
Parameters:
conn - a JDBC connection with access to the Loco session tables
sid - the session id
Throws:
FailedSessionException - if there is a database error or the session cannot be found

storeSessionObjects

public void storeSessionObjects(java.sql.Connection conn,
                                java.util.Hashtable objects)
Description copied from class: SessionStore
Saves a new Session and returns its sid
Overrides:
storeSessionObjects in class SessionStore
Tags copied from class: SessionStore
Parameters:
conn - a JDBC connection with access to the Loco session tables
sid - the session id
objects - the hashtable of objects to be saved
Throws:
FailedSessionException - if there is a database error or the session cannot be found

createNewSession

public long createNewSession(java.sql.Connection conn,
                             int srid,
                             int userid,
                             java.sql.Timestamp expire)
                      throws FailedSessionException
Description copied from class: SessionStore
Saves a new Session and returns its sid
Overrides:
createNewSession in class SessionStore
Tags copied from class: SessionStore
Parameters:
conn - a JDBC connection with access to the Loco session tables
srid - the random number for cookie checks
userid - the user
expire - the timestamp
Throws:
FailedSessionException - if there is a database error or the session cannot be found