Class TdbSession
- java.lang.Object
-
- com.tietoenator.trip.jxp.session.TdbSessionObject
-
- com.tietoenator.trip.jxp.TdbMessageProvider
-
- com.tietoenator.trip.jxp.session.TdbSession
-
- All Implemented Interfaces:
com.tietoenator.trip.jxp.internal.utils.DOMSink
- Direct Known Subclasses:
TdbGridSession
,TdbLocalSession
,TdbPooledSession
,TdbTripNetSession
,TdbWebSession
public class TdbSession extends TdbMessageProvider implements com.tietoenator.trip.jxp.internal.utils.DOMSink
Construct and manage a session with a server
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
authenticate(java.lang.String username, java.lang.String password)
Authenticate with a grid.java.util.List<java.lang.String>
dateforms()
Retrieve the list of available date forms supported by the servervoid
enableNotification(TdbNotificationType type, boolean enable)
Enables or disables notifications.void
enableNotification(TdbNotificationType type, int notificationInterval)
Enables search and sort comforter notifications with a specified preferred interval.java.util.List<java.lang.String>
fieldTypes()
Retrieve the list of available field types supported by the serverTdbActivityLogger
getActivityLog()
Retrieve a reference to the activity logger currently in useTdbBackgroundTaskSink
getBackgroundTaskSink()
Retrieve a reference to the background task completion event sink currently in usejava.lang.String
getBuildNumber()
Retrieves the server's build version number stringTdbCharacterSet
getCharacterSet()
Retrieves the TRIP character set in use on the serverjava.lang.String
getCharacterSetName()
Retrieves the name of the TRIP character set in use on the serverTdbDateform
getCurrentDateform()
Returns a TdbDateform instance for the current date format.java.lang.String
getDateform(int ix)
Retrieves the dateform string for the dateform with the supplied typejava.lang.String
getDefaultQueueName()
Retrieves the name of the default background task submission queue on the serverjava.lang.String
getFieldType(int ft)
Retrieves the name of the field type specifiedint
getFieldType(java.lang.String nm)
Retrieves the ID of the named field typeTdbNotificationSink
getNotificationSink()
Returns the current notification sink.java.lang.String
getPid()
Retrieves session pid on serverjava.lang.String
getRevisionNumber()
Retrieves the server's revision number stringjava.lang.String
getServerName()
The name of the TRIP server that the session is connected to.java.lang.String
getSessionId()
Retrieve the established session ID -- this is obsolete as of TRIP6TdbInterfaceType
getSessionType()
Retrieves the connection type for this sessionint
getSubsystemID(java.lang.String nm)
Retrieves the ID of the classification subsystem with the supplied namejava.lang.String
getSubsystemName(int st)
Retrieves the name of classification subsystem with the supplied IDjava.lang.String
getUsername()
Retrieve the calling user's TRIP usernamejava.lang.String
getVersion()
Retrieves the server's version stringboolean
isConnected()
Returns true if there is a physical or networked connection to the server.boolean
isFileManager()
Returns true if the calling user has file manager privilegeboolean
isLicensedFor(TdbProduct prod)
Check if the server to which this session is connected is licensed for the supplied product codeboolean
isLoggedIn()
Returns true is session is connected and authenticated.boolean
isSystemManager()
Returns true if the calling user is the SYSTEM userboolean
isTicketsEnabled()
Returns true if login tickets are enabled on the server.boolean
isUserManager()
Returns true if the calling user has user manager privilegeboolean
isWorking()
Check if the session (in reality the underlying HIF) is busyjava.util.List<java.lang.String>
licensedProducts()
Retrieves a collection of named products for which the server is licensedvoid
login(java.lang.String username, java.lang.String password)
Login to a TRIP server, using English CCL dialect, and disallowing restart.void
login(java.lang.String username, java.lang.String password, TdbLanguage language, boolean restart)
Login to a TRIP server.void
logout()
Logout from the current session without saving state.void
logout(boolean save)
Logout from a session created with login.java.lang.String
requestLoginTicket()
Request a new login ticket for the currently logged on user.void
revokeLoginTicket(java.lang.String ticket)
Revoke the login ticket owned by the current user, or for the SYSTEM super user to revoke the ticket for another user.void
setActivityLog(TdbActivityLogger logger)
Set the activity logger reference for this sessionvoid
setBackgroundTaskSink(TdbBackgroundTaskSink sink)
Establish the background task completion event sink to usevoid
setNotificationSink(TdbNotificationSink sink)
Assign a notification sink.java.util.List<java.lang.String>
subsystemNames()
Retrieve the list of available classification subsystems supported by the serverboolean
supportsFeature(TdbTripFeature feature)
Returns true if the version of TRIPsystem this session is connected to supports the specified feature.void
validate(TdbInterfaceType type)
Validate that this session refers to a compatible connection typevoid
writeActivityLog(java.lang.String value)
Write an arbitrary string to the activity log (if any) associated with this session-
Methods inherited from class com.tietoenator.trip.jxp.TdbMessageProvider
codeList, getLastCode, getLastMessage, hasMessages, messageList, resetMessages
-
Methods inherited from class com.tietoenator.trip.jxp.session.TdbSessionObject
cancel, getSession, isCancelable, setCancelable
-
-
-
-
Method Detail
-
getActivityLog
public TdbActivityLogger getActivityLog()
Retrieve a reference to the activity logger currently in use- Returns:
- The logger instance in use
-
setActivityLog
public void setActivityLog(TdbActivityLogger logger)
Set the activity logger reference for this session- Parameters:
logger
- The activity logger to use; set this to null to remove any pre-existing logger
-
getBackgroundTaskSink
public TdbBackgroundTaskSink getBackgroundTaskSink()
Retrieve a reference to the background task completion event sink currently in use- Returns:
- Any event sink in use
-
setBackgroundTaskSink
public void setBackgroundTaskSink(TdbBackgroundTaskSink sink)
Establish the background task completion event sink to use- Parameters:
sink
- Background task event sink
-
getNotificationSink
public TdbNotificationSink getNotificationSink()
Returns the current notification sink.- Returns:
- A TdbNotificationSink instance or null if no notification sink is defined
-
setNotificationSink
public void setNotificationSink(TdbNotificationSink sink) throws TdbException
Assign a notification sink.This method does not cause the server to activate comforter notifications - they must still be explicitly enabled per type. The reason for this is to minimize unnecessary network communications. Only enable the notifications you actually are going to need.
The detail level reported with of graph analysis notifications is set on the TdbGraph object being used.
- Parameters:
sink
- TdbNotificationSink object or null- Throws:
TdbException
- Code TdbException.UNUSABLE_SESSION if the session is not of type TdbInterfaceType.NET- See Also:
enableNotification(TdbNotificationType,boolean)
,enableNotification(TdbNotificationType,int)
-
getSessionId
public java.lang.String getSessionId()
Retrieve the established session ID -- this is obsolete as of TRIP6- Returns:
- Any available session ID token
-
getUsername
public java.lang.String getUsername()
Retrieve the calling user's TRIP username- Returns:
- The user's TRIP username
-
dateforms
public java.util.List<java.lang.String> dateforms()
Retrieve the list of available date forms supported by the server- Returns:
- The list of available date forms
-
getDateform
public java.lang.String getDateform(int ix)
Retrieves the dateform string for the dateform with the supplied type- Parameters:
ix
- The type of dateform string to retrieve- Returns:
- The appropriate dateform string or null if ix is invalid
-
getCurrentDateform
public TdbDateform getCurrentDateform() throws TdbException
Returns a TdbDateform instance for the current date format.- Throws:
TdbException
-
fieldTypes
public java.util.List<java.lang.String> fieldTypes()
Retrieve the list of available field types supported by the server- Returns:
- The list of available field types
-
getFieldType
public java.lang.String getFieldType(int ft)
Retrieves the name of the field type specified- Parameters:
ft
- The field type for which to retrieve the name- Returns:
- The field type name
-
getFieldType
public int getFieldType(java.lang.String nm)
Retrieves the ID of the named field type- Parameters:
nm
- The name of the field type for which the ID is to be retrieved- Returns:
- The field type identifier
-
subsystemNames
public java.util.List<java.lang.String> subsystemNames()
Retrieve the list of available classification subsystems supported by the server- Returns:
- The list of available subsystem names
-
getSubsystemName
public java.lang.String getSubsystemName(int st)
Retrieves the name of classification subsystem with the supplied ID- Parameters:
st
- The subsystem type ID- Returns:
- The name of the subsystem
-
getSubsystemID
public int getSubsystemID(java.lang.String nm)
Retrieves the ID of the classification subsystem with the supplied name- Parameters:
nm
- The name of the subsystem- Returns:
- The ID of the subsystem, or null if not found
-
getDefaultQueueName
public java.lang.String getDefaultQueueName()
Retrieves the name of the default background task submission queue on the server- Returns:
- The name of the default queue
-
isSystemManager
public boolean isSystemManager()
Returns true if the calling user is the SYSTEM user- Returns:
- true / false depending on the calling user's SM status
-
isTicketsEnabled
public boolean isTicketsEnabled()
Returns true if login tickets are enabled on the server.- Returns:
- true / false depending on if login tickets are enabled or not
- Since:
- 8.0-4
- See Also:
requestLoginTicket()
-
isFileManager
public boolean isFileManager()
Returns true if the calling user has file manager privilege- Returns:
- true / false depending on the calling user's FM status
-
isUserManager
public boolean isUserManager()
Returns true if the calling user has user manager privilege- Returns:
- true / false depending on the calling user's UM status
-
isConnected
public boolean isConnected()
Returns true if there is a physical or networked connection to the server. This property always holds the value 'true' if the session is web or local.- Returns:
- True if connected
-
getVersion
public java.lang.String getVersion()
Retrieves the server's version string- Returns:
- The server's version string
-
getRevisionNumber
public java.lang.String getRevisionNumber()
Retrieves the server's revision number string- Returns:
- The server's revision number string
-
getBuildNumber
public java.lang.String getBuildNumber()
Retrieves the server's build version number string- Returns:
- The server's build version number string
-
getPid
public java.lang.String getPid()
Retrieves session pid on server- Returns:
- Session pid on server
-
getCharacterSetName
public java.lang.String getCharacterSetName()
Retrieves the name of the TRIP character set in use on the server- Returns:
- The name of the active character set
-
getCharacterSet
public TdbCharacterSet getCharacterSet()
Retrieves the TRIP character set in use on the server- Returns:
- The ID of the active character set
-
licensedProducts
public java.util.List<java.lang.String> licensedProducts()
Retrieves a collection of named products for which the server is licensed- Returns:
- The collection of currently licensed product names
-
requestLoginTicket
public java.lang.String requestLoginTicket() throws TdbException
Request a new login ticket for the currently logged on user.- Throws:
TdbException
-The returned value can be used instead of username and password, enabling an SSO-like behavhior for applications, in which the ticket would be stored as a cookie. To log in using the ticket, pass it in the password parameter of the Login method and set the username to an empty string.
When requesting a new login ticket, the new ticket will replace any previous ticket assigned to the current user. Subsequent ticket-based login for the user must use the new ticket.
The login ticket feature requries TRIPsystem 8.0 or later and must be explicitly enabled on the TRIP server in order to be used as it is disabled by default.
Tickets time out after 30 days of inactivity by default. This period can be configured. Refer to the TRIPsystem documentation for more information.
-
revokeLoginTicket
public void revokeLoginTicket(java.lang.String ticket) throws TdbException
Revoke the login ticket owned by the current user, or for the SYSTEM super user to revoke the ticket for another user.To revoke the login ticket for the current user, the ticket parameter can be null or an empty string. Specifying the login ticket explicitly is only required if the current user is SYSTEM and the goal is to revoke the ticket for another user.
- Parameters:
ticket
- Empty string or login ticket to revoke- Throws:
TdbException
- Since:
- 8.0-4
-
isLicensedFor
public boolean isLicensedFor(TdbProduct prod)
Check if the server to which this session is connected is licensed for the supplied product code- Parameters:
prod
- The product code to check- Returns:
- true if the server is licensed for the product, false otherwise
-
getSessionType
public TdbInterfaceType getSessionType()
Retrieves the connection type for this session- Returns:
- The connection type
-
isWorking
public boolean isWorking()
Check if the session (in reality the underlying HIF) is busy- Returns:
- true if the server is currently doing something for us, otherwise false
-
getServerName
public java.lang.String getServerName()
The name of the TRIP server that the session is connected to. This property returns the name or IP address of the TRIP server host that the session is connected to. For session types such as the TdbGridSession that do not connect to a single host known and specified by the JXP application, this method will return an empty string.
-
enableNotification
public void enableNotification(TdbNotificationType type, boolean enable) throws TdbException
Enables or disables notifications.When using this method to enable a notification type, a default interval will be used. This is 5 seconds for comforters. To enable a notification type with custom interval, use "EnableNotification(TdbNotificationType,int) instead.
For your application to be able to react on notifications, you must also register a notification sink.
- Parameters:
type
- Notification type to enable or disableenable
- True to enable and false to disable- Throws:
TdbException
- See Also:
setNotificationSink(TdbNotificationSink)
,getNotificationSink()
-
enableNotification
public void enableNotification(TdbNotificationType type, int notificationInterval) throws TdbException
Enables search and sort comforter notifications with a specified preferred interval. For your application to be able to react on notifications, you must also register a notification sink.- Parameters:
type
- Notification type to enablenotificationInterval
- Preferred interval in seconds between notifications (pass 0 for a server-chosen default)- Throws:
TdbException
-
writeActivityLog
public void writeActivityLog(java.lang.String value) throws TdbException
Write an arbitrary string to the activity log (if any) associated with this session- Parameters:
value
- The string to write to the log- Throws:
TdbException
-
supportsFeature
public boolean supportsFeature(TdbTripFeature feature)
Returns true if the version of TRIPsystem this session is connected to supports the specified feature.- See Also:
TdbTripFeature
-
validate
public void validate(TdbInterfaceType type) throws TdbException
Validate that this session refers to a compatible connection type- Parameters:
type
- The type of connection to validate- Throws:
TdbException
-
authenticate
public void authenticate(java.lang.String username, java.lang.String password) throws TdbException
Authenticate with a grid.This method causes network I/O.
- Parameters:
username
- The TRIP usernamepassword
- The TRIP password -- this gets encrypted for transmission- Throws:
TdbException
-
login
public void login(java.lang.String username, java.lang.String password) throws TdbException
Login to a TRIP server, using English CCL dialect, and disallowing restart.- Parameters:
username
- The TRIP username to usepassword
- The TRIP password to use- Throws:
TdbException
-To log in with a login ticket, pass an empty string as the username and the ticket as the password.
This method causes network I/O.
-
login
public void login(java.lang.String username, java.lang.String password, TdbLanguage language, boolean restart) throws TdbException
Login to a TRIP server.- Parameters:
username
- The TRIP username to usepassword
- The TRIP password to use (this gets encrypted for transmission)language
- The CCL language dialect to userestart
- If set high, signal TRIP to attempt to restart from a previous session- Throws:
TdbException
-To log in with a login ticket, pass an empty string as the username and the ticket as the password.
This method causes network I/O.
-
logout
public void logout() throws TdbException
Logout from the current session without saving state.This method causes network I/O.
- Throws:
TdbException
-
logout
public void logout(boolean save) throws TdbException
Logout from a session created with login. This method must only be called from physical connections, and cannot be used with grid connections.This method causes network I/O.
- Parameters:
save
- Set true to signal the server to save the session file (*.SIF)- Throws:
TdbException
-
isLoggedIn
public boolean isLoggedIn()
Returns true is session is connected and authenticated.- Returns:
- true if logged in.
-
-