com.ibm.commerce.pvcadapter
Class PVCAdapterImpl

java.lang.Object
  |
  +--com.ibm.commerce.adapter.AbstractHttpAdapter
        |
        +--com.ibm.commerce.pvcadapter.PVCAdapterImpl
All Implemented Interfaces:
DeviceFormatAdapter, HttpAdapter, HttpAdapterFactory, PVCAdapter

public abstract class PVCAdapterImpl
extends AbstractHttpAdapter
implements PVCAdapter

Base implementaion of the pervasive computing(PvC) adapter. Subclasses should implements abstract method provided by PVCAdapterImpl. To install PvC adapters, insert following tags into XML configuration file. The tag HttpAdapters is located at the end of the configuraiton file.



<HttpAdapters>
<!-- All PvC adapter should be listed as a HttpAdapter in HttpAdapters tag -->
<HttpAdapter
 name = "UniqueIdentifier"
 deviceFormatId = "DeviceFormatId"
 deviceFormatType = "DeviceFormatType"
 deviceFormatTypeId = "DeviceFormatTypeId"
 factoryClassname="ClassNameOfTheAdapter"
 enabled="true"
>
<!-- PVC adapters should provide following information -->
<PVCAdapter
registrationMode="RegistrationMode"
preferredLogonTimeout="LogonTimeout"
bufferTimeout="BufferTimeout"
>
<!-- The adapter accepts access from following address-->
<IPCheck>    <!-- If you don't need address check, do not specify IPCheck tag -->
<IP type="TypeOfTheAddress" value="Address"/>
...
<IP type="TypeOfTheAddress" value="Address"/>
</IPCheck>

<!-- The adapter can exculdes listed commands-->
<ExcludeCommands>

<!-- List commands the adapter should not execute-->
<Command name="CommandName"/>
...
<Command name="CommandName"/>
</ExcludeCommands>

<!-- The adapter can request user to reenter  password to execute commands -->
<RelogonCommands>

<!-- List commands the adapter needs password -->
<Command name="CommandName"/>
...
<Command name="CommandName"/>
</RelogonCommands>
</PVCAdapter>
</HttpAdapter>

<HttpAdapter>

...  <!-- You can install multiple adapters -->
</HttpAdapter>
</HttpAdapters>

UniqueIdentifier

Unique name to identify each adapters. Value must be shorter than length of PVCSESSION.SESSIONTYPE table.
DeviceFormatId
Specify device format id of the adapter. The device format needs to be listed in DEVICEFORMAT table.
DeviceFormatType
Specify name of the device format.
DeviceFormatTypeId
Specify device format id an adapter with which the adapter shares entries in VIEWREG table. If you wish to separate entires in VIEWREG table with PC browser, you can speficy same device format ID as PC browser.
ClassNameOfTheAdapter
Specify name of the adapter class.
RegistrationMode
Specify registration mode from followings.
0: Unlimited
1: Users need to register device infromation to login to WebSphere Commerce server using their device
2: Users need to register device infromation to login to WebSphere Commerce server using their device and one user can register only use one device to login to WebSphere Commerce server.
LogonTimeout
Time to logon expires. Specify value in minutes
BufferTimeout
Time to buffered parameters are revoked. Specify value in minutes
TypeOfTheAddress
Type of the address. Value values is net or host
net: Specified Address is netowk address
host: Specified Address is host address
CommandName
Name of a targetable command
 
 


Field Summary
protected static java.lang.String DEFAULT_MODELNAME
           
protected  java.lang.String deviceModel
           
protected  PVCDeviceModelAccessBean modelBean
           
protected  PVCAdapterDesc pvcdesc
           
protected  java.lang.Long pvcSessionId
           
protected  PVCSessionAccessBean sessionAccessBean
           
protected  SessionContext sessionContext
           
protected  PVCDeviceSpecAccessBean specAccessBean
           
static java.lang.Integer STATUS_LOGOFF
          Value used in PVCSESSION to indicate that the PVC device user is logoff status.
static java.lang.Integer STATUS_LOGON
          Value used in PVCSESSION to indicate that the PVC device user is logon status.
protected  java.lang.Integer storeId
           
protected  java.lang.String terminalId
           
protected  UserPVCDeviceAccessBean userDeviceAccessBean
           
 
Fields inherited from class com.ibm.commerce.adapter.AbstractHttpAdapter
desc, req, reqObj, requestProperties, resp
 
Fields inherited from interface com.ibm.commerce.pvcadapter.PVCAdapter
COPYRIGHT
 
Fields inherited from interface com.ibm.commerce.adapter.HttpAdapter
DEVFMTID_BROWSER, DEVFMTNAME_BROWSER, DEVFMTNAME_IMODE, DEVFMTTYP_BROWSER, DEVFMTTYP_PVCDEVICE, DEVFMTTYP_XMLFMT, DEVFMTTYPID_BROWSER, DEVFMTTYPID_PVC, DEVFMTTYPID_XML
 
Fields inherited from interface com.ibm.commerce.adapter.HttpAdapterFactory
COPYRIGHT
 
Constructor Summary
PVCAdapterImpl()
           
 
Method Summary
 HttpAdapter createAdapter(com.ibm.commerce.pvcadapter.HttpServletRequest req, com.ibm.commerce.pvcadapter.HttpServletResponse resp, TypedProperty prop)
          Checks to see if the HttpServletRequest data is in this device format.
 HttpAdapterDesc getAdapterDesc()
          Return the terminal id of the device.
 java.lang.Integer getBufferTimeout()
          Gets buffer timeout value applied to the adapter from XML configuration file.
abstract  java.lang.String getDeviceModel()
          Gets the model name from the request.
 java.lang.String getDocumentPathName(java.lang.String name)
          Gets the actual output document name based on a base document name.
 java.lang.Integer getLogonTimeout()
          Gets the timeout value applied for the adapter from XML configuration file.
 PVCAdapterDesc getPVCAdapterDesc()
          Gets the description of the PvC adapter
 PVCDeviceModelAccessBean getPVCDeviceModelAccessBean()
          Returns the access bean which contains model information of the device.
 PVCDeviceSpecAccessBean getPVCDeviceSpecAccessBean()
          Returns the access bean which contains spec information of the device.
 PVCSessionAccessBean getPVCSessionAccessBean()
          Returns the access bean which contains session information of the device.
 java.lang.Long getPvcSessionId()
          Returns session ID used for session control using the adapter.
 java.lang.String getRegistrationMode()
          Returns retgistrationMode of the adapter in XML configuration file.
 SessionContext getSessionContext()
          Returns session context necessary for session control
 java.lang.Integer getStoreId()
          Returns store ID in the request
abstract  java.lang.String getTerminalId()
          Gets the terminal ID sent by the wireless gateway.
 UserPVCDeviceAccessBean getUserPVCDeviceAccessBean()
          Returns access bean of the client's device information in USERPVCDEV table.
 boolean httpsRedirection()
          Check to see if the adapter can support HTTP -> HTTPS redirection
 void initFactory(org.w3c.dom.Element node)
          initialize the Adapter based on the informtion defined in the node
 boolean isExcludeCommand(java.lang.String value)
          Returns true if the named command is excluded for for this adapater.
 boolean isRelogonCommand(java.lang.String value)
          Returns true if the named command required a relogon for this adapater.
 void postInvokeCommand(CommandContext commandContext)
          Does necessary processes after invoking command.
 boolean preInvokeCommand(CommandContext commandContext)
          Does necessary process before invoking command.
 com.ibm.commerce.pvcadapter.HttpControllerRequestObject preprocessRequest()
          This method preprocess a HttpServletRequest and return a HttpControllerRequestObject.
 void setDeviceModel(java.lang.String value)
          Sets model name of the device.
 void setPVCAdapterDesc(PVCAdapterDesc value)
          Sets description of the PVCAdapter.
 void setPvcSessionId(java.lang.Long newPvcSessionId)
          Sets session ID necessary for session control using PvC adapter.
 void setStoreId(java.lang.Integer storeId)
          Sets store ID to the adapter
 void setTerminalId(java.lang.String value)
          Sets terminal ID sent by the carrier to the adapter
 boolean userHasTimedout()
          This method checks to see if a PvC user has timed out.
 
Methods inherited from class com.ibm.commerce.adapter.AbstractHttpAdapter
displayGenericErrorView, getDefaultDeviceFormatId, getDeviceFormatId, getDeviceFormatName, getDeviceFormatType, getDeviceFormatTypeId, getRequest, getRequestName, getRequestProperties, getResponse, httpRedirection, initFactory, isEnabled, processErrorResponse, processRequest, processResponse, setAdapterDesc, setDefaultDeviceFormatId, setDeviceFormatClass, setDeviceFormatId, setDeviceFormatName, setDeviceFormatType, setDeviceFormatTypeId, setRequest, setRequestProperties, setResponse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.ibm.commerce.pvcadapter.PVCAdapter
checkDeviceFormat, setAdapterDesc
 
Methods inherited from interface com.ibm.commerce.adapter.HttpAdapter
getRequest, getRequestName, getRequestProperties, getResponse, processRequest, setRequest, setRequestProperties, setResponse
 
Methods inherited from interface com.ibm.commerce.adapter.DeviceFormatAdapter
getDefaultDeviceFormatId, getDeviceFormatId, getDeviceFormatName, getDeviceFormatType, getDeviceFormatTypeId, processErrorResponse, processResponse, setDefaultDeviceFormatId, setDeviceFormatId, setDeviceFormatName, setDeviceFormatType, setDeviceFormatTypeId
 
Methods inherited from interface com.ibm.commerce.adapter.HttpAdapterFactory
checkDeviceFormat, createAdapter
 

Field Detail

DEFAULT_MODELNAME

protected static java.lang.String DEFAULT_MODELNAME

deviceModel

protected java.lang.String deviceModel

modelBean

protected PVCDeviceModelAccessBean modelBean

pvcdesc

protected PVCAdapterDesc pvcdesc

pvcSessionId

protected java.lang.Long pvcSessionId

sessionAccessBean

protected PVCSessionAccessBean sessionAccessBean

sessionContext

protected SessionContext sessionContext

specAccessBean

protected PVCDeviceSpecAccessBean specAccessBean

STATUS_LOGOFF

public static final java.lang.Integer STATUS_LOGOFF
Value used in PVCSESSION to indicate that the PVC device user is logoff status.

STATUS_LOGON

public static final java.lang.Integer STATUS_LOGON
Value used in PVCSESSION to indicate that the PVC device user is logon status.

storeId

protected java.lang.Integer storeId

terminalId

protected java.lang.String terminalId

userDeviceAccessBean

protected UserPVCDeviceAccessBean userDeviceAccessBean
Constructor Detail

PVCAdapterImpl

public PVCAdapterImpl()
Method Detail

createAdapter

public HttpAdapter createAdapter(com.ibm.commerce.pvcadapter.HttpServletRequest req,
                                 com.ibm.commerce.pvcadapter.HttpServletResponse resp,
                                 TypedProperty prop)
Checks to see if the HttpServletRequest data is in this device format.
Returns:
null If the session can't be handled by the adapter; instance of the adapter otherwise

getAdapterDesc

public HttpAdapterDesc getAdapterDesc()
Return the terminal id of the device.
Specified by:
getAdapterDesc in interface PVCAdapter
Overrides:
getAdapterDesc in class AbstractHttpAdapter
Returns:
Description of the http adapter

getBufferTimeout

public java.lang.Integer getBufferTimeout()
Gets buffer timeout value applied to the adapter from XML configuration file.
Specified by:
getBufferTimeout in interface PVCAdapter
Returns:
Timeout value

getDeviceModel

public abstract java.lang.String getDeviceModel()
Gets the model name from the request.
Specified by:
getDeviceModel in interface PVCAdapter
Returns:
Model name of the client's device

getDocumentPathName

public java.lang.String getDocumentPathName(java.lang.String name)
Gets the actual output document name based on a base document name. The method gets content directory from the adapter, if the adapter has its device specification in PVCDEVSPEC table. If the adapter returns an object by getPVCSessionAccessBean(), the method inserts value of CONTENTDIR in PVCDEVSPEC table in front of requested document path.
Specified by:
getDocumentPathName in interface DeviceFormatAdapter
Overrides:
getDocumentPathName in class AbstractHttpAdapter
Parameters:
base - document name

getLogonTimeout

public java.lang.Integer getLogonTimeout()
Gets the timeout value applied for the adapter from XML configuration file.
Specified by:
getLogonTimeout in interface PVCAdapter
Returns:
Timeout value

getPVCAdapterDesc

public final PVCAdapterDesc getPVCAdapterDesc()
Gets the description of the PvC adapter
Specified by:
getPVCAdapterDesc in interface PVCAdapter
Returns:
Adapter description

getPVCDeviceModelAccessBean

public PVCDeviceModelAccessBean getPVCDeviceModelAccessBean()
Returns the access bean which contains model information of the device.
Specified by:
getPVCDeviceModelAccessBean in interface PVCAdapter
Returns:
Model information of the device

getPVCDeviceSpecAccessBean

public PVCDeviceSpecAccessBean getPVCDeviceSpecAccessBean()
Returns the access bean which contains spec information of the device.
Specified by:
getPVCDeviceSpecAccessBean in interface PVCAdapter
Returns:
null if no suitable record for the client's device is found in PVCDEVSPEC table; Otherwise returns specification of the client's device.

getPVCSessionAccessBean

public PVCSessionAccessBean getPVCSessionAccessBean()
Returns the access bean which contains session information of the device.
Specified by:
getPVCSessionAccessBean in interface PVCAdapter
Returns:
Session infomation of the device

getPvcSessionId

public java.lang.Long getPvcSessionId()
Returns session ID used for session control using the adapter.
Specified by:
getPvcSessionId in interface PVCAdapter
Returns:
Session ID

getRegistrationMode

public java.lang.String getRegistrationMode()
Returns retgistrationMode of the adapter in XML configuration file.
Specified by:
getRegistrationMode in interface PVCAdapter
Returns:
0 If the adapter doesn't need device registration to allow user to login using the device. 1 If the adapter requires device registration to allow user to login using the device. 2 If the adapter requires device registration to allow user to login using the device and relationship between user and device is ristricted to 1 to 1.

getSessionContext

public SessionContext getSessionContext()
                                 throws ECException
Returns session context necessary for session control
Specified by:
getSessionContext in interface DeviceFormatAdapter
Returns:
Session context

getStoreId

public java.lang.Integer getStoreId()
Returns store ID in the request
Returns:
Store ID

getTerminalId

public abstract java.lang.String getTerminalId()
Gets the terminal ID sent by the wireless gateway.
Specified by:
getTerminalId in interface PVCAdapter
Returns:
Terminal ID

getUserPVCDeviceAccessBean

public UserPVCDeviceAccessBean getUserPVCDeviceAccessBean()
Returns access bean of the client's device information in USERPVCDEV table. If the user is a registered user and has no recoed in USERPVCDEV table, the method inserts a new record automatically.
Returns:
User's device

httpsRedirection

public boolean httpsRedirection()
Check to see if the adapter can support HTTP -> HTTPS redirection
Specified by:
httpsRedirection in interface HttpAdapter
Returns:
always true

initFactory

public void initFactory(org.w3c.dom.Element node)
                 throws java.lang.Exception
initialize the Adapter based on the informtion defined in the node

isExcludeCommand

public final boolean isExcludeCommand(java.lang.String value)
Returns true if the named command is excluded for for this adapater.
Specified by:
isExcludeCommand in interface PVCAdapter
Parameters:
name - String - name of the command
Returns:
true if this commmand is excluded false if this command is not excluded

isRelogonCommand

public final boolean isRelogonCommand(java.lang.String value)
                               throws ECException
Returns true if the named command required a relogon for this adapater.
Specified by:
isRelogonCommand in interface PVCAdapter
Parameters:
name - String - name of the command
Returns:
true if this commmand requires a relogon false if this command does not requires a relogon

postInvokeCommand

public void postInvokeCommand(CommandContext commandContext)
                       throws ECException
Does necessary processes after invoking command.
Specified by:
postInvokeCommand in interface DeviceFormatAdapter
Parameters:
commandContext - Context of the command

preInvokeCommand

public boolean preInvokeCommand(CommandContext commandContext)
                         throws ECException
Does necessary process before invoking command.
Specified by:
preInvokeCommand in interface DeviceFormatAdapter
Parameters:
commandContext - Context of the command

preprocessRequest

public com.ibm.commerce.pvcadapter.HttpControllerRequestObject preprocessRequest()
This method preprocess a HttpServletRequest and return a HttpControllerRequestObject.
Specified by:
preprocessRequest in interface HttpAdapter
Overrides:
preprocessRequest in class AbstractHttpAdapter

setDeviceModel

public final void setDeviceModel(java.lang.String value)
Sets model name of the device.
Specified by:
setDeviceModel in interface PVCAdapter
Parameters:
value - Model name

setPVCAdapterDesc

public final void setPVCAdapterDesc(PVCAdapterDesc value)
Sets description of the PVCAdapter.
Specified by:
setPVCAdapterDesc in interface PVCAdapter
Parameters:
val - desciption of the PVCAdapter

setPvcSessionId

public void setPvcSessionId(java.lang.Long newPvcSessionId)
Sets session ID necessary for session control using PvC adapter.
Specified by:
setPvcSessionId in interface PVCAdapter
Parameters:
newPvcSessionId - Session ID

setStoreId

public void setStoreId(java.lang.Integer storeId)
Sets store ID to the adapter
Specified by:
setStoreId in interface PVCAdapter
Parameters:
storeId - Store ID

setTerminalId

public final void setTerminalId(java.lang.String value)
Sets terminal ID sent by the carrier to the adapter
Specified by:
setTerminalId in interface PVCAdapter
Parameters:
value - Terminal ID

userHasTimedout

public boolean userHasTimedout()
This method checks to see if a PvC user has timed out.
Specified by:
userHasTimedout in interface PVCAdapter
Returns:
boolean - returns true if a user has timed out