Skip to content

Latest commit

 

History

History
78 lines (55 loc) · 3.53 KB

README.md

File metadata and controls

78 lines (55 loc) · 3.53 KB

IDLReasoner

Analysis operations

IDLReasoner is a Java library that allows to automatically analyze IDL specifications and perform a number of operations on them, namely:

  1. isValidIDL:
    • Input: 1) IDL specification; 2) API operation parameters.
    • Output: Boolean indicating whether the IDL specification is valid or not (i.e. it does not contain dead nor false optional parameters and at least one valid request can be generated).
  2. isDeadParameter:
    • Input: 1) IDL specification; 2) API operation parameters; 3) Parameter to check.
    • Output: Boolean indicating whether the parameter passed is dead or not (i.e. it can never be used in an API request due to inconsistencies in the IDL specification).
  3. isFalseOptional:
    • Input: 1) IDL specification; 2) API operation parameters; 3) Parameter to check.
    • Output: Boolean indicating whether the parameter passed is false optional or not (i.e. it is required despite being declared as optional. This also happens because of inconsistencies in the IDL specification).
  4. getRandomRequest:
    • Input: 1) IDL specification; 2) API operation parameters.
    • Output: Valid API request (i.e. a request satisfying all dependencies and including all required parameters).
  5. isValidRequest:
    • Input: 1) IDL specification; 2) API operation parameters; 3) Request to check.
    • Output: Boolean indicating whether the request is valid or not.
  6. isValidPartialRequest:
    • Input: 1) IDL specification; 2) API operation parameters; 3) Request to check.
    • Output: Boolean indicating whether the request is partially valid or not (i.e. some parameters still need to be set to make it a fully valid request).
  7. getAllRequests:
    • Input: 1) IDL specification; 2) API operation parameters.
    • Output: All valid API requests. As a precondition, all parameters of the operation must have a finite domain.
  8. getNumberOfRequests:
    • Input: 1) IDL specification; 2) API operation parameters.
    • Output: Total number of valid API requests. As a precondition, all parameters of the operation must have a finite domain.