public interface OwnerPINxWithPredecrement extends OwnerPINx
OwnerPINxWithPredecrement interface represents an Owner PIN,
 extends Personal Identification Number functionality as defined in the
 PIN interface, and provides the ability to update the PIN, update the try limit
 and try counter and thus owner functionality.
 
 The OwnerPINxWithPredecrement interface extends the
 OwnerPINx to support the decrementing of the tries counter
 before any PIN validation attempts.OwnerPINx, 
OwnerPINBuilder| Modifier and Type | Method and Description | 
|---|---|
| boolean | check(byte[] pin,
     short offset,
     byte length)Compares  pinagainst the PIN value without decrementing the try
 counter. | 
| byte | decrementTriesRemaining()Decrements the try counter if the  PINis not blocked. | 
getTryLimit, setTriesRemaining, setTryLimit, updategetTriesRemaining, isValidated, resetbyte decrementTriesRemaining()
PIN is not blocked. It also resets
 the validated flag. This method must be called prior to calling the
 check method; the state for enforcing this constraint
 must be implemented as a CLEAR_ON_RESET transient object; it must also be cleared
 when the check method is called as well as when any other public method
 that affects the try counter, the validated flag, or the blocking state is called.
 
 Even if a
 transaction is in progress, update of internal state - the try counter, the
 validated flag, and the blocking state, shall not participate in the
 transaction.
 
 In addition to returning a byte result, platform-implementations of this method set the
 result in an internal state which can be rechecked using assertion methods
 of the SensitiveResult class, if
 supported by the platform.boolean check(byte[] pin,
            short offset,
            byte length)
              throws PINException,
                     ArrayIndexOutOfBoundsException,
                     NullPointerException
pin against the PIN value without decrementing the try
 counter. If the
 PIN is not blocked then:
 if the PIN value matches, it sets the validated flag and resets
 the try counter to its maximum; otherwise if the PIN value does not match, it resets the validated flag, decrements the
 try counter - if not assumed to having been pre-decremented - and, if the counter has reached zero, blocks the
 PIN. 
 
 Even if a transaction is in progress, update of internal state - the try
 counter, the validated flag, and the blocking state, shall not participate
 in the transaction.
 
 Note:
 decrementTriesRemaining method. 
 If the decrementTriesRemaining method has not been
 called prior to calling this method then a PINException exception is thrown;
 the state for enforcing this constraint
 must be implemented as a CLEAR_ON_RESET transient object; it must also be cleared
 when this method is called as well as when any other public method
 that affects the try counter, the validated flag, or the blocking state is called.NullPointerException or
 ArrayIndexOutOfBoundsException is thrown, the validated
 flag must be set to false and, the PIN blocked if the counter
 reaches zero.offset or length parameter is
 negative an ArrayIndexOutOfBoundsException exception is
 thrown.offset+length is greater than
 pin.length, the length of the pin array,
 an ArrayIndexOutOfBoundsException exception is
 thrown.pin parameter is null
 a NullPointerException exception is thrown.boolean result, platform-implementations of this method set the
 result in an internal state which can be rechecked using assertion methods
 of the SensitiveResult class, if
 supported by the platform.check in interface PINpin - the byte array containing the PIN value being checkedoffset - the starting offset in the pin arraylength - the length of pintrue if the PIN comparison is successful, false
 otherwise.ArrayIndexOutOfBoundsException - if the check operation would
 cause access of data outside array bounds.NullPointerException - if pin is nullPINException - with the following reason codes:
 ILLEGAL_STATE if the decrementTriesRemaining
 method has not been called prior to calling this method.Copyright © 1998, 2015, Oracle and/or its affiliates. All rights reserved.