Introduction
============

This library hopes to provide a more friendly DSL for binding method handles.
Unlike the normal MethodHandle API, handles are bound forward from a source
MethodType and eventually adapted to a final target MethodHandle. Along the way
the transformations are pushed onto a stack and eventually applied in reverse
order, as the standard API demands.

Examples
========

Transformation calls can be chained. They are not applied until an eventual
"invoke" is called with the target endpoint MethodHandle.

    MethodHandle mh = Binder
       .from(String.class, String.class, String.class) // String w(String, String)
       .drop(1, String.class) // String x(String)
       .insert(0, 'hello') // String y(String, String)
       .cast(String.class, CharSequence.class, Object.class) // String z(CharSequence, Object)
       .invoke(someTargetHandle);

Status
======

This is currently under development. Not all transformations from the MethodHandle
API are yet supported.

Contributors are welcome :)

Releasing
=========

Use a Java 9+ JVM and run `mvn deploy -Prelease` to build and upload all necessary artifacts.

