Packages

final case class Product[A](extraction: Extraction[A], construction: Constructor[A]) extends scala.Product with Serializable

Describes all types which could be considered products in a very loose way.

For type to be considered "product" it has to be:

  • non abstract
  • have a public (primary) constructor

If it's a "product" then we are able to provide both a way to construct it as well as a way to extract its properties. This is rather unrestricted since:

  • our "constructor" allows passing arguments to Java Bean setters
  • our properties include: defs without arguments, Java Bean getters and it's the code using the extractors and constructors that should check the type of getter/constructor argument.

In case we don't need a "product" per se, but rather any instantiable type to instantiate or any type to obtain its methods, we can use unapply from Extraction or Construction.

Attributes
protected
Linear Supertypes
Serializable, scala.Product, Equals, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Product
  2. Serializable
  3. Product
  4. Equals
  5. AnyRef
  6. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new Product(extraction: Extraction[A], construction: Constructor[A])

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  6. val construction: Constructor[A]
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. val extraction: Extraction[A]
  9. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  10. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  13. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  14. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. def productElementNames: Iterator[String]
    Definition Classes
    Product
  16. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  17. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  18. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  19. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from Serializable

Inherited from scala.Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped