IDLReasoner

A MiniZinc-based Java library for analyzing IDL specifications

License

License

GroupId

GroupId

es.us.isa
ArtifactId

ArtifactId

idl-reasoner
Last Version

Last Version

0.0.2
Release Date

Release Date

Type

Type

jar
Description

Description

IDLReasoner
A MiniZinc-based Java library for analyzing IDL specifications
Project URL

Project URL

https://github.com/isa-group/IDLReasoner
Source Code Management

Source Code Management

https://github.com/isa-group/IDLReasoner/tree/master

Download idl-reasoner

How to add to project

<!-- https://jarcasting.com/artifacts/es.us.isa/idl-reasoner/ -->
<dependency>
    <groupId>es.us.isa</groupId>
    <artifactId>idl-reasoner</artifactId>
    <version>0.0.2</version>
</dependency>
// https://jarcasting.com/artifacts/es.us.isa/idl-reasoner/
implementation 'es.us.isa:idl-reasoner:0.0.2'
// https://jarcasting.com/artifacts/es.us.isa/idl-reasoner/
implementation ("es.us.isa:idl-reasoner:0.0.2")
'es.us.isa:idl-reasoner:jar:0.0.2'
<dependency org="es.us.isa" name="idl-reasoner" rev="0.0.2">
  <artifact name="idl-reasoner" type="jar" />
</dependency>
@Grapes(
@Grab(group='es.us.isa', module='idl-reasoner', version='0.0.2')
)
libraryDependencies += "es.us.isa" % "idl-reasoner" % "0.0.2"
[es.us.isa/idl-reasoner "0.0.2"]

Dependencies

compile (8)

Group / Artifact Type Version
commons-io : commons-io jar 2.6
org.apache.logging.log4j : log4j-api jar 2.10.0
org.apache.logging.log4j : log4j-core jar 2.13.2
org.eclipse.xtext : org.eclipse.xtext jar 2.22.0
io.swagger.core.v3 : swagger-core jar 2.1.2
io.swagger.parser.v3 : swagger-parser jar 2.0.19
com.google.inject : guice jar 4.2.3
es.us.isa : idl jar 0.0.1

test (1)

Group / Artifact Type Version
org.junit.jupiter : junit-jupiter-api jar 5.5.2

Project Modules

There are no modules declared in this project.

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.
es.us.isa

ISA Group

Applied Software Engineering research group at the University of Seville

Versions

Version
0.0.2
0.0.1