org.sisioh.dddbase.core.lifecycle

Repository

Related Doc: package lifecycle

trait Repository[ID <: Identifier[_], E <: Entity[ID], M[+A]] extends EntityReader[ID, E, M] with EntityWriter[ID, E, M]

基本的なリポジトリのトレイト。 リポジトリとして、基本的に必要な機能を定義するトレイト。

リポジトリの状態を変更するメソッドの戻り値としては、 Immutableなリポジトリは新しいリポジトリインスタンスを返し、 Mutableなリポジトリは同一インスタンスを返すこと、を推奨する。

ID

エンティティの識別子の型

E

エンティティの型

M

モナドの型

Linear Supertypes
EntityWriter[ID, E, M], EntityReader[ID, E, M], EntityIO[M], AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Repository
  2. EntityWriter
  3. EntityReader
  4. EntityIO
  5. AnyRef
  6. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Type Members

  1. type Ctx = EntityIOContext[M]

    Definition Classes
    EntityIO
  2. abstract type Result <: ResultWithEntity[This, ID, E, M]

    Definition Classes
    EntityWriter
  3. abstract type Results <: ResultWithEntities[This, ID, E, M]

    Definition Classes
    EntityWriter
  4. abstract type This <: Repository[ID, E, M]

    Definition Classes
    RepositoryEntityWriter

Abstract Value Members

  1. abstract def deleteBy(identifier: ID)(implicit ctx: Ctx): M[Result]

    指定した識別子のエンティティを削除する。

    指定した識別子のエンティティを削除する。

    identifier

    識別子

    returns

    Success: リポジトリインスタンスと削除されたエンティティ Failure: RepositoryExceptionは、リポジトリにアクセスできなかった場合。

    Definition Classes
    EntityWriter
  2. abstract def existBy(identifier: ID)(implicit ctx: Ctx): M[Boolean]

    Definition Classes
    EntityReader
  3. abstract def mapValues[A, R](values: M[A])(f: (A) ⇒ R)(implicit ctx: Ctx): M[R]

    Attributes
    protected
    Definition Classes
    EntityReader
  4. abstract def resolveBy(identifier: ID)(implicit ctx: Ctx): M[E]

    Definition Classes
    EntityReader
  5. abstract def store(entity: E)(implicit ctx: Ctx): M[Result]

    エンティティを保存する。

    エンティティを保存する。

    entity

    保存する対象のエンティティ

    returns

    Success: リポジトリインスタンスと保存されたエンティティ Failure RepositoryExceptionは、リポジトリにアクセスできなかった場合。

    Definition Classes
    EntityWriter
  6. abstract def traverse[A, R](values: Seq[A], forceSuccess: Boolean = false)(f: (A) ⇒ M[R])(implicit ctx: Ctx): M[Seq[R]]

    Attributes
    protected
    Definition Classes
    EntityReader
  7. abstract def traverseWithThis[A](values: Seq[A])(processor: (This, A) ⇒ M[Result])(implicit ctx: Ctx): M[Results]

    Attributes
    protected
    Definition Classes
    EntityWriter

Concrete 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. def apply(identifier: ID)(implicit ctx: Ctx): M[E]

    Definition Classes
    EntityReader
  5. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  6. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  7. def deleteByMulti(identifiers: ID*)(implicit ctx: Ctx): M[Results]

    指定した複数の識別子のエンティティを削除する。

    指定した複数の識別子のエンティティを削除する。

    identifiers

    識別子

    returns

    Success: リポジトリインスタンスと削除されたエンティティ Failure: RepositoryExceptionは、リポジトリにアクセスできなかった場合。

    Definition Classes
    EntityWriter
  8. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  10. def exist(entity: E)(implicit ctx: Ctx): M[Boolean]

    Definition Classes
    EntityReader
  11. def existByMulti(identifiers: ID*)(implicit ctx: Ctx): M[Boolean]

    Definition Classes
    EntityReader
  12. def existMulti(entities: E*)(implicit ctx: Ctx): M[Boolean]

    Definition Classes
    EntityReader
  13. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  14. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  15. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  16. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  17. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  18. final def notify(): Unit

    Definition Classes
    AnyRef
  19. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  20. def resolveByMulti(identifiers: ID*)(implicit ctx: Ctx): M[Seq[E]]

    Definition Classes
    EntityReader
  21. def storeMulti(entities: E*)(implicit ctx: Ctx): M[Results]

    複数のエンティティを保存する。

    複数のエンティティを保存する。

    entities

    保存する対象のエンティティ

    returns

    Success: リポジトリインスタンスと保存されたエンティティ Failure RepositoryExceptionは、リポジトリにアクセスできなかった場合。

    Definition Classes
    EntityWriter
  22. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  23. def toString(): String

    Definition Classes
    AnyRef → Any
  24. def traverseWithoutFailures[A, R](values: Seq[A])(f: (A) ⇒ M[R])(implicit ctx: Ctx): M[Seq[R]]

    Attributes
    protected
    Definition Classes
    EntityReader
  25. def update(identifier: ID, entity: E)(implicit ctx: Ctx): M[Result]

    更新メソッド。

    更新メソッド。

    entityWriter(identifier) = entity
    identifier

    識別子

    entity

    エンティティ

    returns

    Success: リポジトリインスタンスと保存されたエンティティ Failure RepositoryExceptionは、リポジトリにアクセスできなかった場合。

    Definition Classes
    EntityWriter
  26. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  27. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  28. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from EntityWriter[ID, E, M]

Inherited from EntityReader[ID, E, M]

Inherited from EntityIO[M]

Inherited from AnyRef

Inherited from Any

Ungrouped