JValue - Java Value Objects

JValue is an instantiation of the Value Object pattern. Frequently, built-in primitive types (String, Integer, Double) are used to hold domain specific values such as amount, postcode, city or length. This approach is not type safe (e.g., assignment of a length value to a height attribute is not detected by the compiler), and checking of value constraints needs to be done by the surrounding object. Therefore, it is beneficial to realize domain-specific value types as special classes. JValue is a framework which simplifies the implementation of such domain-specific value types. It provides mechanisms to attach SI units to a value type, and to define type constraints such as a value range or a regular expression to which the value must adhere.