GenericProductDeriver

org.finos.morphir.datamodel.GenericProductDeriver
See theGenericProductDeriver companion trait

Attributes

Companion
trait
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

inline def gen[T <: Product]: GenericProductDeriver[T]

Automatic generator for Product types (and only product types). For anything that is automatically evaluated by the Scala compiler as a implicit (e.g. auto-derivation) we need to be really careful for that not to evaulate for Products and Primitives (and/or Sums) otherwise there is a danger that it will recurse infinately on certain datatypes that are not well-formed. Therefore for products we have a single function that handles derivation only for products and the implicit needed for that (in the Derivers). This is needed for the following purpose.

Automatic generator for Product types (and only product types). For anything that is automatically evaluated by the Scala compiler as a implicit (e.g. auto-derivation) we need to be really careful for that not to evaulate for Products and Primitives (and/or Sums) otherwise there is a danger that it will recurse infinately on certain datatypes that are not well-formed. Therefore for products we have a single function that handles derivation only for products and the implicit needed for that (in the Derivers). This is needed for the following purpose.

Say that we have a simple case-class hierarchy like this {{ case class Person(name: Name, age: String) case class Name(first: String, last: String)

}}

Attributes

def make[T <: Product](productBuilder: MirrorProduct): GenericProductDeriver[T]