com.raritantechnologies.quickstart
Class UserSession

java.lang.Object
  extended bycom.raritantechnologies.quickstart.UserSession
All Implemented Interfaces:
java.io.Serializable

public class UserSession
extends java.lang.Object
implements java.io.Serializable

UserSession represents a single user session from login to exit by logout or session timeout. UserSessions are maintained by the SessionManager which creates a UserSession at login time.

UserSession objects can be obtained given a sessionID string using:

      String sessionID = httpSession.getId( );
      SessionManager sessionManager = SessionManager.getInstance( );
      UserSession userSession = sessionManager.getSession( sessionID );
  

Uses the javax.servlet.HttpSessionBindingListener interface to detect when the HttpSession maintained by the J2EE Application Server has timed out.


Developed by Raritan Technologies .

Author:
Ted Sullivan, Glenn Robitaille
See Also:
Serialized Form

Constructor Summary
UserSession(ILoginInfo loginInfo, java.lang.String sessionID)
           
UserSession(SessionManager sessManager, ILoginInfo loginInfo, java.lang.String sessionID)
           
 
Method Summary
 void addSessionListener(HttpSessionBindingListener sl)
           
 IResultSet executeQuery(java.lang.String sourceMapType, java.lang.String categoryName, OrderedMap queryParams, int pageSize, int startRec)
          Executes a query.
 IResultSet executeQuery(java.lang.String sourceMapType, java.lang.String categoryName, java.lang.String sourceMapName, OrderedMap queryParams, int pageSize, int startRec)
           
 IFederatedSearchSource getFederatedSource(java.lang.String categoryName)
           
 java.lang.String getFederatorClass()
           
 java.lang.String getLastQuery()
          returns the last query executed by this user.
 java.lang.Integer getLastQueryID(java.lang.String sourceName)
           
 OrderedMap getLastQueryParams(java.lang.Integer queryID)
           
 SearchSource getLastSearchSource(java.lang.Integer queryID)
           
 ILoginInfo getLoginInfo()
           
 java.lang.Integer getQueryID(SessionManager sessMan, SearchSource ss, OrderedMap queryParams)
           
 IQueryProcessor getQueryProcessor(SearchSource theSource)
           
 SearchSource getSearchSource(SourceLoginInfo[] sources, java.lang.String sourceMapType, java.lang.String categoryName)
          returns a SearchSource for a given set of sources and category.
 java.lang.String getSessionID()
           
static ISourceMap getSourceMap(java.lang.String sourceMapType, java.lang.String categoryName)
           
 SourceLoginInfo[] getSources(java.lang.String sourceMapType, java.lang.String categoryName, OrderedMap queryParams)
          returns a set of one or more sources with user-specific credentials (if appropriate).
 SourceLoginInfo[] getSources(java.lang.String sourceMapType, java.lang.String categoryName, OrderedMap queryParams, java.lang.String sourceMapName)
          returns a set of one or more sources with user-specific credentials (if appropriate).
 java.lang.String getTempDoc()
           
 ILoginInfo getUserInfo()
          Returns an object containing the user's login information.
 ILoginInfo getUserLogin()
          Returns an object containing the user's login information.
 void setLastQuery(java.lang.String query)
          Set the last query executed by this user.
 void setRemoteAddr(java.lang.String remoteAddr)
           
 void setTempDoc(java.lang.String tempDoc)
           
 void valueBound(HttpSessionBindingEvent event)
          Notifies the object that is being bound to a session and identifies the session.
 void valueUnbound(HttpSessionBindingEvent event)
          This method will be called when the HttpSession is destroyed by the App server.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

UserSession

public UserSession(ILoginInfo loginInfo,
                   java.lang.String sessionID)

UserSession

public UserSession(SessionManager sessManager,
                   ILoginInfo loginInfo,
                   java.lang.String sessionID)
Method Detail

valueBound

public void valueBound(HttpSessionBindingEvent event)
Notifies the object that is being bound to a session and identifies the session. This will happen when the SessionManager binds this UserSession object to its HttpSession context. The UserSession object is bound to the HttpSession by calling session.addAttribute( "User", ); (see SessionManager.login( ) methods.)


valueUnbound

public void valueUnbound(HttpSessionBindingEvent event)
This method will be called when the HttpSession is destroyed by the App server. The UserSession should remove itself from its SessionManager by executing

this.sessionManager.removeUser( this );


addSessionListener

public void addSessionListener(HttpSessionBindingListener sl)

executeQuery

public IResultSet executeQuery(java.lang.String sourceMapType,
                               java.lang.String categoryName,
                               OrderedMap queryParams,
                               int pageSize,
                               int startRec)
                        throws QueryException,
                               QueryProcessorException
Executes a query. The queryType identifies the type of query input form. Uses the ConfigurationManager to get an IQueryProcessor for this type if UserSession does not already have one in its cache. The queryType is coupled to the queryParams map and is interpreted by the IQueryProcessor. queryParams - input form parameter map obtained from ServletRequest.getParameterMap( )

Throws:
QueryException
QueryProcessorException

executeQuery

public IResultSet executeQuery(java.lang.String sourceMapType,
                               java.lang.String categoryName,
                               java.lang.String sourceMapName,
                               OrderedMap queryParams,
                               int pageSize,
                               int startRec)
                        throws QueryException,
                               QueryProcessorException
Throws:
QueryException
QueryProcessorException

getQueryProcessor

public IQueryProcessor getQueryProcessor(SearchSource theSource)

getQueryID

public java.lang.Integer getQueryID(SessionManager sessMan,
                                    SearchSource ss,
                                    OrderedMap queryParams)

getSources

public SourceLoginInfo[] getSources(java.lang.String sourceMapType,
                                    java.lang.String categoryName,
                                    OrderedMap queryParams)
returns a set of one or more sources with user-specific credentials (if appropriate).

Parameters:
sourceMapType - The type of source map (category, DynamicSourceMap, etc...)
categoryName - The name of the source category (used for CategorySourceMap type)
queryParams - Map of incoming parameters (e.g. from the http request)

getSources

public SourceLoginInfo[] getSources(java.lang.String sourceMapType,
                                    java.lang.String categoryName,
                                    OrderedMap queryParams,
                                    java.lang.String sourceMapName)
returns a set of one or more sources with user-specific credentials (if appropriate).

Parameters:
sourceMapType - The type of source map (category, DynamicSourceMap, etc...)
categoryName - The name of the source category (used for CategorySourceMap type)
queryParams - Map of incoming parameters (e.g. from the http request)
sourceMapName - Name of the SourceMap that should be used to get the sources.

getSourceMap

public static ISourceMap getSourceMap(java.lang.String sourceMapType,
                                      java.lang.String categoryName)

getSearchSource

public SearchSource getSearchSource(SourceLoginInfo[] sources,
                                    java.lang.String sourceMapType,
                                    java.lang.String categoryName)
returns a SearchSource for a given set of sources and category. If sources array has more than one source, this method will return a Federated SearchSource implementation.


getSessionID

public java.lang.String getSessionID()

getUserLogin

public ILoginInfo getUserLogin()
Returns an object containing the user's login information.


getUserInfo

public ILoginInfo getUserInfo()
Returns an object containing the user's login information.


getLoginInfo

public ILoginInfo getLoginInfo()

setRemoteAddr

public void setRemoteAddr(java.lang.String remoteAddr)

setLastQuery

public void setLastQuery(java.lang.String query)
Set the last query executed by this user.


getLastQueryID

public java.lang.Integer getLastQueryID(java.lang.String sourceName)

getLastQueryParams

public OrderedMap getLastQueryParams(java.lang.Integer queryID)

getLastSearchSource

public SearchSource getLastSearchSource(java.lang.Integer queryID)

getFederatedSource

public IFederatedSearchSource getFederatedSource(java.lang.String categoryName)

getLastQuery

public java.lang.String getLastQuery()
returns the last query executed by this user.


setTempDoc

public void setTempDoc(java.lang.String tempDoc)

getTempDoc

public java.lang.String getTempDoc()

getFederatorClass

public java.lang.String getFederatorClass()