Convenience modifier that transforms a hint value string into a fully-qualified class name (and the reverse) using passed-in transformation functions.
Convenience modifier that transforms a hint value string into a fully-qualified class name (and the reverse) using passed-in transformation functions. The appropriate Bijective is created under the covers.
Convenience modifier that transforms a map of string hint values to their respective types.
Convenience modifier that transforms a map of string hint values to their respective types. Note there is a necessary assumption that the mapping is 1-to-1. If not you'll need to create the Bijective function yourself with whatever logic you need, and not use this class.
This is a pretty sophisticated object that resolves parameterized types, and can handle some pretty complex situations.
This is a pretty sophisticated object that resolves parameterized types, and can handle some pretty complex situations. For comments throughout this class, reference this example:
trait OuterTrait[T, U, V] { val a: T val b: List[U] val d: V } trait InnerTrait[Y] { val x: Y } case class InnerClass[Z](x: Z) extends InnerTrait[Z] case class OuterClass[Z, X, P](c: Z, a: InnerTrait[Z], b: List[InnerTrait[X]], d: P) extends OuterTrait[InnerTrait[Z], InnerTrait[X], P]