Collection of value objects that can be used for search in abstract data source

This library is a concept intended to provide a universal language for conditions that can be transformed into method calls to libraries or DSLs that work with databases, such as Exposed, jOOQ, Criteria API, etc.

Example:

userService.findOneBy(
    firstName = Eq("Bill"),
    lastName = NotIn("Stivenson", "Jackson") and Like("son"),
    birthDate = LessEq(LocalDateTime.now().minusYears(21)),
)

Source code