Packages

package model

provides tools for constructing your domain model

Source
package.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. model
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. 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

  2. abstract class DerivedCType[M, C, Poly >: C] extends CType[M, C]

    one of the derived types in a family of component types.

    one of the derived types in a family of component types. use this as your CType when it represents a concrete subtype of a PolyCType.

    M

    the domain model

    C

    the component class

    Poly

    the parent component class

  3. 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

  4. 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 the KVType 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

  5. 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

  6. 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. the ModelEv 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 the longevity.model.annotations.domainModel annotation on your model class M. the model evidence should be package private to prevent the introduction of any persistent classes that are not discoverable by the ModelType, 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

  7. 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. the ModelType is intended to be implicitly available within the domain model's companion object. this comes for free if you use the longevity.model.annotations.domainModel annotation on your model class M.

    M

    the model

    Annotations
    @throws( ... ) @throws( ... ) @throws( ... )
    See also

    longevity.model.annotations.domainModel

  8. 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 the PType 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

  9. 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

  10. 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

  11. 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

Value Members

  1. object CType

    contains a factory method for creating CTypes

  2. object DerivedCType

    contains a factory method for creating DerivedCTypes

  3. object PolyCType

    contains a factory method for creating PolyCTypes

Inherited from AnyRef

Inherited from Any

Ungrouped