IBM LANDP J/XFS Wrappers

com.ibm.landp.device
Class LandpIBM4778PIN_MSD

java.lang.Object
  |
  +--com.ibm.landp.device.internal.LandpDeviceService
        |
        +--com.ibm.landp.device.LandpIBM47xxMSD
              |
              +--com.ibm.landp.device.LandpIBM4778PIN_MSD

public class LandpIBM4778PIN_MSD
extends LandpIBM47xxMSD
implements com.jxfs.service.IJxfsPINKeypadService, com.ibm.landp.device.internal.pin.ILandpPINPadService, com.jxfs.control.pin.JxfsPINConst

Implements the methods required by the JXFS PIN Pad device service API. This class extends the LandpIBM47xxMSD Magnetic Stripe device service to use the mag stripe capabilities of that device. Thus the 4778 is classed as a complex device in J/XFS terms. At the current level, this class does not implement encrypted pin pad operations.


Field Summary
static java.lang.String copyrightNotice
           
 
Fields inherited from class com.ibm.landp.device.LandpIBM47xxMSD
copyrightNotice
 
Fields inherited from class com.ibm.landp.device.internal.LandpDeviceService
controls, DESCRIPTION, INTERNAL_TIMEOUT, isShutdownActive, landpServer, localDeviceInfo, logger, openCount, ORIGIN, physicalDeviceDescription, physicalDeviceName, queue, status, subclass, version
 
Fields inherited from interface com.jxfs.service.IJxfsPINKeypadService
JXFS_COPYRIGHT, JXFS_VERSION_CONTROL
 
Fields inherited from interface com.ibm.landp.device.internal.pin.ILandpPINPadService
copyrightNotice
 
Fields inherited from interface com.jxfs.control.pin.JxfsPINConst
JXFS_COPYRIGHT, JXFS_E_PIN_ACCESS_DENIED, JXFS_E_PIN_CRYPTNOTSUPPORTED, JXFS_E_PIN_DUPLICATE_KEY, JXFS_E_PIN_FORMAT_NOTSUPPORTED, JXFS_E_PIN_KEY_NO_VALUE, JXFS_E_PIN_KEY_NOT_FOUND, JXFS_E_PIN_KEYINVALID, JXFS_E_PIN_KEYNOTSUPPORTED, JXFS_E_PIN_LENGTH_ERROR, JXFS_E_PIN_MINIMUMLENGTH, JXFS_E_PIN_NO_PIN, JXFS_E_PIN_NOACTIVEKEYS, JXFS_E_PIN_NOT_ALLOWED, JXFS_E_PIN_NOTSUPPORTEDCAP, JXFS_E_PIN_READ_FAILURE, JXFS_E_PIN_USE_VIOLATION, JXFS_I_PIN_KEY_PRESSED, JXFS_O_PIN_CREATEOFFSET, JXFS_O_PIN_CREATEOFFSET_SECURE, JXFS_O_PIN_CREATEPINBLOCK, JXFS_O_PIN_CREATEPINBLOCK_SECURE, JXFS_O_PIN_DECRYPT, JXFS_O_PIN_ENCRYPT, JXFS_O_PIN_GENMAC, JXFS_O_PIN_IMPORTKEY, JXFS_O_PIN_INITIALIZE, JXFS_O_PIN_READPIN, JXFS_O_PIN_VALIDATEPIN, JXFS_O_PIN_VALIDATEPIN_SECURE, JXFS_O_PIN_VALIDATEPININCHIP, JXFS_PIN_COMP_AUTO, JXFS_PIN_COMP_FDKEY, JXFS_PIN_COMP_FK, JXFS_PIN_CRYPT_MODE_DESCBC, JXFS_PIN_CRYPT_MODE_DESCFB, JXFS_PIN_CRYPT_MODE_DESECB, JXFS_PIN_CRYPT_MODE_DESMAC, JXFS_PIN_CRYPT_MODE_ECMA, JXFS_PIN_CRYPT_MODE_RSA, JXFS_PIN_CRYPT_MODE_TRIDESCBC, JXFS_PIN_CRYPT_MODE_TRIDESCFB, JXFS_PIN_CRYPT_MODE_TRIDESECB, JXFS_PIN_CRYPT_MODE_TRIDESMAC, JXFS_PIN_FK_0, JXFS_PIN_FK_00, JXFS_PIN_FK_000, JXFS_PIN_FK_1, JXFS_PIN_FK_2, JXFS_PIN_FK_3, JXFS_PIN_FK_4, JXFS_PIN_FK_5, JXFS_PIN_FK_6, JXFS_PIN_FK_7, JXFS_PIN_FK_8, JXFS_PIN_FK_9, JXFS_PIN_FK_BACKSPACE, JXFS_PIN_FK_CANCEL, JXFS_PIN_FK_CLEAR, JXFS_PIN_FK_DECPOINT, JXFS_PIN_FK_ENTER, JXFS_PIN_FK_FDK01, JXFS_PIN_FK_FDK02, JXFS_PIN_FK_FDK03, JXFS_PIN_FK_FDK04, JXFS_PIN_FK_FDK05, JXFS_PIN_FK_FDK06, JXFS_PIN_FK_FDK07, JXFS_PIN_FK_FDK08, JXFS_PIN_FK_FDK09, JXFS_PIN_FK_FDK10, JXFS_PIN_FK_FDK11, JXFS_PIN_FK_FDK12, JXFS_PIN_FK_FDK13, JXFS_PIN_FK_FDK14, JXFS_PIN_FK_FDK15, JXFS_PIN_FK_FDK16, JXFS_PIN_FK_FDK17, JXFS_PIN_FK_FDK18, JXFS_PIN_FK_FDK19, JXFS_PIN_FK_FDK20, JXFS_PIN_FK_FDK21, JXFS_PIN_FK_FDK22, JXFS_PIN_FK_FDK23, JXFS_PIN_FK_FDK24, JXFS_PIN_FK_FDK25, JXFS_PIN_FK_FDK26, JXFS_PIN_FK_FDK27, JXFS_PIN_FK_FDK28, JXFS_PIN_FK_FDK29, JXFS_PIN_FK_FDK30, JXFS_PIN_FK_FDK31, JXFS_PIN_FK_FDK32, JXFS_PIN_FK_HELP, JXFS_PIN_FK_NONE, JXFS_PIN_FMT_3624, JXFS_PIN_FMT_ANSI, JXFS_PIN_FMT_DIEBOLD, JXFS_PIN_FMT_DIEBOLDC0, JXFS_PIN_FMT_EC12, JXFS_PIN_FMT_EC13, JXFS_PIN_FMT_EC13RAND, JXFS_PIN_FMT_ISO0, JXFS_PIN_FMT_ISO1, JXFS_PIN_FMT_VISA, JXFS_PIN_INPUT_COOKED, JXFS_PIN_INPUT_RAW, JXFS_PIN_KP_FDKEY, JXFS_PIN_KP_FUNCTION, JXFS_PIN_PRES_CLEAR, JXFS_PIN_VAL_DES, JXFS_PIN_VAL_EC, JXFS_PIN_VAL_VISA, JXFS_S_PIN_KEY, JXFS_VERSION_CONTROL
 
Fields inherited from interface com.jxfs.service.IJxfsBaseService
JXFS_COPYRIGHT, JXFS_VERSION_CONTROL
 
Fields inherited from interface com.jxfs.general.JxfsConst
JXFS_ALL, JXFS_ALM_OFFSET, JXFS_CDR_OFFSET, JXFS_CHK_OFFSET, JXFS_COPYRIGHT, JXFS_DEP_OFFSET, JXFS_E_BUSY, JXFS_E_CANCELLED, JXFS_E_CLAIMED, JXFS_E_CLOSED, JXFS_E_DISABLED, JXFS_E_EXISTS, JXFS_E_FAILURE, JXFS_E_FIRMWARE, JXFS_E_ILLEGAL, JXFS_E_IO, JXFS_E_NOCONTROL, JXFS_E_NOEXIST, JXFS_E_NOHARDWARE, JXFS_E_NOSERVICE, JXFS_E_NOT_SUPPORTED, JXFS_E_NOTCLAIMED, JXFS_E_NOTREMOTE, JXFS_E_OFFLINE, JXFS_E_OPEN, JXFS_E_PARAMETER_INVALID, JXFS_E_REMOTE, JXFS_E_SYSTEM, JXFS_E_TIMEOUT, JXFS_E_UNREGISTERED, JXFS_FOREVER, JXFS_LEVEL_ACTIVE, JXFS_LEVEL_ALL, JXFS_LEVEL_CONFIGURED, JXFS_LEVEL_WORKSTATION, JXFS_MSD_OFFSET, JXFS_O_CLOSE, JXFS_O_OPEN, JXFS_O_UPDATEFIRMWARE, JXFS_PIN_OFFSET, JXFS_PTR_OFFSET, JXFS_RC_SUCCESSFUL, JXFS_RC_UNSUCCESSFUL, JXFS_S_BIN_STATUS, JXFS_S_CLAIMED, JXFS_S_HARDWAREERROR, JXFS_S_MEDIA_STATUS, JXFS_S_POWERSAVEOFF, JXFS_S_POWERSAVEON, JXFS_S_RELEASED, JXFS_S_REMOTEFAILURE, JXFS_S_SERVICE_STARTED, JXFS_S_SERVICE_STOPPED, JXFS_S_SHUTDOWN, JXFS_S_USERACTIONERROR, JXFS_S_WORKING, JXFS_SIU_OFFSET, JXFS_TIO_OFFSET, JXFS_VALID_CONTROLID, JXFS_VERSION_CONTROL, JXFSDEVICE_OFFSET, JXFSDIRECTIO_OFFSET, JXFSERR, JXFSERREXT, NO_MATCH, NO_SOURCE, NO_SUPPORT, OK_NEWER, OK_OLDER, OK_OTHER
 
Constructor Summary
LandpIBM4778PIN_MSD()
          Default constructor.
 
Method Summary
 boolean getBeepOnPressSupported(int controlId)
          Returns true if the real device supports beep on key pressed.
 boolean getInputCookedSupported(int controlId)
          Returns true if the real device supports cooked input mode.
 boolean getInputRawSupported(int controlId)
          Returns true if the real device supports raw input mode.
 java.util.Vector getSupportedFDKeys(int controlId)
          Returns a list of function descriptor keys supported by the device.
 com.jxfs.control.pin.JxfsPINFKeySet getSupportedFKeys(int controlId)
          Returns the set of function keys supported by the real device.
 int readData(com.jxfs.control.pin.JxfsPINReadMode readMode, int controlId)
          Activates the PIN keypad to read a data entry.
 void readDataInternal(com.ibm.landp.device.internal.pin.ReadDataJob job, com.jxfs.control.pin.JxfsPINReadMode readMode)
          Reads data from the device.
 
Methods inherited from class com.ibm.landp.device.LandpIBM47xxMSD
cancel, checkInternal, claim, claimInternal, close, closeInternal, getDeviceType, getMediaStatus, getSupportedReadTracks, getSupportedWriteTracks, open, openInternal, readData, readInternal, release, releaseInternal, writeData, writeInternal
 
Methods inherited from class com.ibm.landp.device.internal.LandpDeviceService
checkShutdown, connectionFailure, deregisterControl, directIO, getDeviceFirmwareVersion, getDeviceServiceVersion, getFirmwareStatus, getPhysicalDeviceDescription, getPhysicalDeviceName, getRepositoryFirmwareVersion, getStatus, initialize, isPowerSaveModeSupported, registerControl, shutdown, updateFirmware, wakeUpFromPowerSave
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

copyrightNotice

public static final java.lang.String copyrightNotice
Constructor Detail

LandpIBM4778PIN_MSD

public LandpIBM4778PIN_MSD()
Default constructor. This sets a number of the variables in LandpDeviceService and creates a reference to the Jxfs logger and a QueueControl object
Method Detail

getSupportedFDKeys

public java.util.Vector getSupportedFDKeys(int controlId)
                                    throws com.jxfs.events.JxfsException
Returns a list of function descriptor keys supported by the device. Each element of the returned Vector is a JxfsPINFDKey object. If the device does not support function descriptor keys, an empty Vector is returned. The 4778 does not support this function, so an empty vector is returned.
Specified by:
getSupportedFDKeys in interface com.jxfs.service.IJxfsPINKeypadService
Returns:
list of supported function descriptor keys See com.jxfs.contrologger.pin.JxfsPINFDKey

getSupportedFKeys

public com.jxfs.control.pin.JxfsPINFKeySet getSupportedFKeys(int controlId)
                                                      throws com.jxfs.events.JxfsException
Returns the set of function keys supported by the real device. If the real device has not been opened yet, the null value is returned.
Specified by:
getSupportedFKeys in interface com.jxfs.service.IJxfsPINKeypadService
Returns:
set of function keys supported by the real device or the null value. See com.jxfs.contrologger.pin.JxfsPINFKeySet

getInputRawSupported

public boolean getInputRawSupported(int controlId)
                             throws com.jxfs.events.JxfsException
Returns true if the real device supports raw input mode. The 4778 does not support raw input mode. This always returns false.
Specified by:
getInputRawSupported in interface com.jxfs.service.IJxfsPINKeypadService
Returns:
true if the real device supports raw input mode, false otherwise.

getInputCookedSupported

public boolean getInputCookedSupported(int controlId)
                                throws com.jxfs.events.JxfsException
Returns true if the real device supports cooked input mode. The 4778 only supports this mode, so true is always returned.
Specified by:
getInputCookedSupported in interface com.jxfs.service.IJxfsPINKeypadService
Returns:
true if the real device supports cooked input mode, false otherwise.

getBeepOnPressSupported

public boolean getBeepOnPressSupported(int controlId)
                                throws com.jxfs.events.JxfsException
Returns true if the real device supports beep on key pressed. The 4778 always beeps on key press and this is not a selectable property so false is always returned.
Specified by:
getBeepOnPressSupported in interface com.jxfs.service.IJxfsPINKeypadService
Returns:
true if the real device supports beep on key pressed, false otherwise.

readData

public int readData(com.jxfs.control.pin.JxfsPINReadMode readMode,
                    int controlId)
             throws com.jxfs.events.JxfsException
Activates the PIN keypad to read a data entry. In the case of the 4778, the readMode is largely ingored as the only way the device works is to return a set of digits when the enter key is pressed. This method creates a ReadDataJob and places it on the queue.
Specified by:
readData in interface com.jxfs.service.IJxfsPINKeypadService
Parameters:
the - desired settings for the read operation
Returns:
an identificationId for this asynchronous operation.
Throws:
JxfsException - with errorCode JXFS_E_PIN_KEYINVALID if at least one of the specified active function keys or function descriptor keys is invalid.
JxfsException - with errorCode JXFS_E_PIN_NOACTIVEKEYS if no active function keys or function descriptor keys are specified.
JxfsException - with errorCode JXFS_E_PIN_KEYNOTSUPPORTED ifd at least one of the specified function keys or function descriptor keys is not supported by the device.
JxfsException - with errorCode JXFS_E_PIN_MINIMUMLENGTH if minLength is invalid or greater than maxLength See com.jxfs.contrologger.pin.JxfsPINReadMode

readDataInternal

public void readDataInternal(com.ibm.landp.device.internal.pin.ReadDataJob job,
                             com.jxfs.control.pin.JxfsPINReadMode readMode)
                      throws com.jxfs.events.JxfsException
Reads data from the device. This method opens the 4778 and issues the functions to the PINP47## server to read data from the PIN pad. In the case of the 4778. If the data returned by the device contains fewer digits than the minimum length set in the JxfsPINReadMode then an error is set in the OperationCompleteEvent. However the maximum length parameter is ignored.
Specified by:
readDataInternal in interface com.ibm.landp.device.internal.pin.ILandpPINPadService
Parameters:
job - the job who has called the method
readMode - a JxfsPINReadMode data object, that contains all the data required to perform a data entry (see JxfsPINReadMode class specification).

IBM LANDP J/XFS Wrappers

Copyright IBM Corporation 2000. All Rights Reserved.