package model
provides tools for constructing your domain model
- Source
- package.scala
- Alphabetic
- By Inheritance
- model
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
abstract
class
CType[M, C] extends AnyRef
a type class for a persistent component
a type class for a persistent component
- M
the domain model
- C
the persistent class
-
abstract
class
DerivedCType[M, C, Poly >: C] extends CType[M, C]
one of the derived types in a family of component types.
-
abstract
class
DerivedPType[M, P, Poly >: P] extends PType[M, P]
one of the derived types in a family of persistent classes.
one of the derived types in a family of persistent classes. mix this in to your persistent type when it represents a concrete subtype of a PolyPType.
- M
the domain model
- P
the persistent class
- Poly
the parent persistent class
-
class
KVEv[M, P, V] extends AnyRef
evidence for a key value
evidence for a key value
this evidence is provided in the key value type (
KVType
) for the same key value class. because theKVType
is typically the companion object for your key value class, this evidence should be available when needed.- M
the domain model
- P
the persistent class
- V
the key value class
- See also
longevity.model.annotations.keyVal
longevity.model.KVType
-
abstract
class
KVType[M, P, V] extends AnyRef
a type class for a key value
a type class for a key value
- M
the domain model
- P
the persistent class
- V
the key value class
-
class
ModelEv[M] extends AnyRef
evidence for a domain model.
evidence for a domain model.
the model class
M
is intended to be a phantom class, available in the root package of the package structure where the domain model elements are defined. theModelEv
is intended to be implicitly available within the domain model's companion object, but private to that package. this comes for free if you use thelongevity.model.annotations.domainModel
annotation on your model classM
. the model evidence should be package private to prevent the introduction of any persistent classes that are not discoverable by theModelType
, whose default behavior is to find persistent classes in the domain model's package and sub-packages.- M
the model
- Annotations
- @implicitNotFound( ... )
- See also
longevity.model.annotations.domainModel
longevity.model.ModelType
-
class
ModelType[M] extends AnyRef
a description of a project's domain model.
a description of a project's domain model. contains a pool of all the persistent types in the model, as well as all the component types.
the model class
M
is intended to be a phantom class, available in the root package of the package structure where the domain model elements are defined. theModelType
is intended to be implicitly available within the domain model's companion object. this comes for free if you use thelongevity.model.annotations.domainModel
annotation on your model classM
.- M
the model
- Annotations
- @throws( ... ) @throws( ... ) @throws( ... )
- See also
longevity.model.annotations.domainModel
-
class
PEv[M, P] extends AnyRef
evidence for a persistent class
evidence for a persistent class
this evidence is provided in the persistent type (
PType
) for the same persistent class. because thePType
is typically the companion object for your persistent class, this evidence should be available when needed.- M
the domain model
- P
the persistent class
- Annotations
- @implicitNotFound( ... )
- See also
longevity.model.annotations.persistent
longevity.model.PType
-
abstract
class
PType[M, P] extends AnyRef
a type class for a persistent object
a type class for a persistent object
- M
the domain model
- P
the persistent class
-
trait
PolyCType[M, C] extends CType[M, C]
the base type for a family of component types.
the base type for a family of component types. use as your CType when it represents an abstract component type with concrete subtypes.
- M
the domain model
- C
the component class
-
trait
PolyPType[M, P] extends PType[M, P]
the base type for a family of persistent types.
the base type for a family of persistent types. mix this in to your persistent type when it represents an abstract persistent type with concrete subtypes.
- M
the domain model
- P
the persistent class