abstract class CaseClass[Typeclass[_], Type] extends ReadOnlyCaseClass[Typeclass, Type]
CaseClass contains all information that exists in a ReadOnlyCaseClass, as well as methods and context required for construct an instance of this case class/object (e.g. default values for constructor parameters)
- Typeclass
type constructor for the typeclass being derived
- Type
generic type of this parameter
- Alphabetic
- By Inheritance
- CaseClass
- ReadOnlyCaseClass
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new CaseClass(typeName: TypeName, isObject: Boolean, isValueClass: Boolean, parametersArray: Array[Param[Typeclass, Type]], annotationsArray: Array[Any], typeAnnotationsArray: Array[Any])
- new CaseClass(typeName: TypeName, isObject: Boolean, isValueClass: Boolean, parametersArray: Array[Param[Typeclass, Type]], annotationsArray: Array[Any], inheritedAnnotationsArray: Array[Any], typeAnnotationsArray: Array[Any])
- typeName
the name of the case class
- isObject
true only if this represents a case object rather than a case class
- parametersArray
an array of Param values for this case class
- annotationsArray
an array of instantiated annotations applied to this case class
- typeAnnotationsArray
an array of instantiated type annotations applied to this case class
Abstract Value Members
- abstract def construct[Return](makeParam: (Param[Typeclass, Type]) => Return): Type
constructs a new instance of the case class type
constructs a new instance of the case class type
This method will be implemented by the Magnolia macro to make it possible to construct instances of case classes generically in user code, that is, without knowing their type concretely.
To construct a new case class instance, the method takes a lambda which defines how each parameter in the new case class should be constructed. See the Param class for more information on constructing parameter values from a Param instance.
- makeParam
lambda for converting a generic Param into the value to be used for this parameter in the construction of a new instance of the case class
- returns
a new instance of the case class
- abstract def constructEither[Err, PType](makeParam: (Param[Typeclass, Type]) => Either[Err, PType]): Either[List[Err], Type]
- abstract def constructMonadic[Monad[_], PType](makeParam: (Param[Typeclass, Type]) => Monad[PType])(implicit monadic: Monadic[Monad]): Monad[Type]
- abstract def rawConstruct(fieldValues: Seq[Any]): Type
constructs a new instance of the case class type
constructs a new instance of the case class type
Like construct this method is implemented by Magnolia and lets you construct case class instances generically in user code, without knowing their type concretely.
rawConstruct
, however, is more low-level in that it expects you to provide a Seq containing all the field values for the case class type, in order and with the correct types.- fieldValues
contains the field values for the case class instance to be constructed, in order and with the correct types.
- returns
a new instance of the case class
- Exceptions thrown
IllegalArgumentException
if the size ofparamValues
differs from the size of parameters
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def annotations: Seq[Any]
a sequence of objects representing all of the annotations on the case class
a sequence of objects representing all of the annotations on the case class
For efficiency, this sequence is implemented by an
Array
, but upcast to a scala.collection.Seq to hide the mutable collection API.- Definition Classes
- ReadOnlyCaseClass
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- final def inheritedAnnotations: Seq[Any]
a sequence of objects representing all of the annotations inherited from base classes/traits
a sequence of objects representing all of the annotations inherited from base classes/traits
For efficiency, this sequence is implemented by an
Array
, but upcast to a scala.collection.Seq to hide the mutable collection API.- Definition Classes
- ReadOnlyCaseClass
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- val isObject: Boolean
- Definition Classes
- CaseClass → ReadOnlyCaseClass
- val isValueClass: Boolean
- Definition Classes
- CaseClass → ReadOnlyCaseClass
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @HotSpotIntrinsicCandidate() @native()
- def parameters: Seq[Param[Typeclass, Type]]
a sequence of Param objects representing all of the parameters in the case class
a sequence of Param objects representing all of the parameters in the case class
For efficiency, this sequence is implemented by an
Array
, but upcast to a scala.collection.Seq to hide the mutable collection API.- Definition Classes
- CaseClass → ReadOnlyCaseClass
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- CaseClass → ReadOnlyCaseClass → AnyRef → Any
- final def typeAnnotations: Seq[Any]
a sequence of objects representing all of the type annotations on the case class
a sequence of objects representing all of the type annotations on the case class
For efficiency, this sequence is implemented by an
Array
, but upcast to a scala.collection.Seq to hide the mutable collection API.- Definition Classes
- ReadOnlyCaseClass
- val typeName: TypeName
- Definition Classes
- CaseClass → ReadOnlyCaseClass
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)