IDLReasoner is a Java library that allows to automatically analyze IDL specifications and perform a number of operations on them, namely:
- 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).
- 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).
- 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).
- 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).
- isValidRequest:
- Input: 1) IDL specification; 2) API operation parameters; 3) Request to check.
- Output: Boolean indicating whether the request is valid or not.
- 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).
- 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.
- 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.