description method

String description()

Implementation

String description() {
       if (this == noInformationGiven)               { return "No information given";                         }
  else if (this == possibleCorruptedData)            { return "Part of returned data my be corrupted";        }
  else if (this == unexpectedEOF)                    { return "End of file reached before reading Le bytes";  }
  else if (this == selectedFileInvalidated)          { return "Selected file invalidated";                    }
  else if (this == wrongFCIFormat)                   { return "FCI not formatted according to 5.1.5";         }
  else if (this == authenticationFailed)             { return "The protocol (step) failed.";                  }
  else if (this == wrongLength)                      { return "Wrong length (e.g. wrong Le field)";           }
  else if (this == claFunctionNotSupported)          { return "Functions in CLA not support";                 }
  else if (this == logicalChannelNotSupported)       { return "Logical channel not supported";                }
  else if (this == secureMessagingNotSupported)      { return "Secure messaging not supported";               }
  else if (this == commandNotAllowed)                { return "Command not allowed";                          }
  else if (this == incompatibleFileStructureCommand) { return "Command incompatible with file structure";     }
  else if (this == securityStatusNotSatisfied)       { return "Security status not satisfied";                }
  else if (this == authenticationMethodBlocked)      { return "Authentication method blocked";                }
  else if (this == referencedDataInvalidated)        { return "Referenced data invalidated";                  }
  else if (this == conditionsNotSatisfied)           { return "Conditions of use not satisfied";              }
  else if (this == commandNotAllowedNoEF)            { return "Command not allowed (no current EF)";          }
  else if (this == smDataMissing)                    { return "Expected SM data objects missing";             } // SM - Secure messaging
  else if (this == smDataInvalid)                    { return "SM data objects incorrect";                    } // SM - Secure messaging
  else if (this == wrongParameters)                  { return "Wrong parameter(s) P1-P2";                     }
  else if (this == invalidDataFieldParameters)       { return "Incorrect parameters in the data field";       }
  else if (this == notSupported)                     { return "Function not supported";                       }
  else if (this == fileNotFound)                     { return "File not found";                               }
  else if (this == recordNotFound)                   { return "Record not found";                             }
  else if (this == notEnoughSpaceInFile)             { return "Not enough memory space in the file";          }
  else if (this == lcInconsistentWithTLV)            { return "Lc inconsistent with TLV structure";           }
  else if (this == incorrectParameters)              { return "Incorrect parameters P1-P2";                   }
  else if (this == lcInconsistentWithParameters)     { return "Lc inconsistent with P1-P2";                   }
  else if (this == referencedDataNotFound)           { return "Referenced data not found";                    }
  else if (this == wrongParameters2)                 { return "Wrong parameter(s) P1-P2";                     }
  else if (this == invalidInstructionCode)           { return "Instruction code not supported or invalid";    }
  else if (this == classNotSupported)                { return "Class not supported";                          }
  else if (this == noPreciseDiagnostics)             { return "No precise diagnosis";                         }
  else if (this == success)                          { return "Success";                                      }
  else {
    if(sw1 == sw1WrongLengthWithExactLength) { // Wrong length (wrong Le field: 'XX' indicates the exact length).
      return "Wrong length (exact length: $sw2)";
    }
    else if(sw1 == sw1SuccessWithRemainingBytes) { // SW2 indicates the number of response bytes still available
      return "$sw2 byte(s) are still available";
    }
    return toString();
  }
}