Atomize is a project that intends to reduce code boilerplate in Java, as well as to make it easier to compartmentalize reusable code for testing purposes.
To achieve that, it relies on functional programming (allowing for high extensibility) and fluent APIs for building "pipelines". A pipeline receives a source object, and passes it through configurable data processors in order to extract and transform its properties as needed. Finally, it uses the extracted data as arguments to an output function.
The fluent builder API leverages function currying and the unchecked nature of type casts to dynamically change the output function type based on the data processors it has been configured with, meaning the output function may be of any arity.
!! Currently, this is a very early work in progress !!