With a preventative paradigm, most errors aren’t allowed into a system in the first place, just by the way the system is defined. With such an approach, the more reliable the system, the higher the productivity in its lifecycle.

Margaret Hamilton

JiiVal is a Java engine designed for validating complex inputs.

  • It eliminates the conditional boilerplate code typical of the Java language;
  • it moves validating conditions to mapping objects;
  • it prevents errors from entering the system by relieving the business logic from the task of validating data.

Many of the software problems come from complex, poor quality inputs or technical debts inherited from legacy systems. Input data are often interdependent and/or tied to system’s or transaction’s state: multiple services may share the same data structures but with different requirements. Moreover, data types, constraints, and structures may be imposed by institutions or suppliers to which the software must be adapted.

Consequently, business logic results often complicated and it thus becomes problematic for the developer.

Formalizing rules is sometimes impossible, sometimes not practical at all:

The XML establishes the DTD: a complex format external to Java.

In JSON there is any support similar to DTD.

However, when writing a REST service in JAVA any input or output format is mapped to POJO classes.

By using JiiVal you don’t need to write special validation classes composed of complex, nested and unreadable if-else chains; as well as you don’t have to distribute validation logic into business logic classes whenever needed. In fact, you can use JiiVal annotations directly in the attributes of POJO classes.

Basically, the engine inherits the elementary validation models of other libraries (such as Jackson) and extends them with a complete model – i.e., the engine ensure the possibility to directly declare, in the mapping objects, the requirements that the system needs, in order to process a correct input.

JiiVal is designed to cover all frequent validation patterns through its standard rule declaration syntax.

The “Validation First” paradigm offered by JiiVal allows:

  • Simpler architectures and a faster development speed, thus leading in saving costs
  • Faster services in rejecting erroneous input, thus faster response time and a saving in computational resources
  • Increased speed and reduced complexity of business logic, hence reduced maintenance and defectiveness

JiiVal is inspired by the foundations of computer engineering and created in order to combine the high quality of the software with a saving in human and computational resources.