trait ProcessingTypeDataProvider[+Data, +CombinedData] extends AnyRef

ProcessingType is a context of application. One ProcessingType can't see data from another ProcessingType. Services run inside one ProcessingType scope behave differently from services run in another scope.

This class is meant to provide access to some scope of data inside context of application to the user. We don't want to pass all ProcessingType's data to every service because it would complicate testing of services and would broke isolation between areas of application. Due to that, this class is a Functor (to be precise BiFunctor but more on that below) which allows to transform the scope of Data.

Sometimes it is necessary to have access also to combination of data across all ProcessingTypes. Due to that this class is a BiFunctor which second value named as CombinedData

This class caches Data and CombinedData wrapped in ProcessingTypeDataState to avoid computations of transformations during each lookup to Data/CombinedData. It behave similar to Observable where given transformed ProcessingTypeDataProvider check its parent if ProcessingTypeDataState.stateIdentity changed.

ProcessingType is associated with Category e.g. Fraud Detection, Marketing. Given user has access to certain categories see LoggedUser.can. Due to that, during each access to Data, user is authorized if he/she has access to category.

Linear Supertypes
AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ProcessingTypeDataProvider
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

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 all(implicit user: LoggedUser): Map[ProcessingType, Data]
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
  7. final def combined: CombinedData
  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  10. final def forProcessingType(processingType: ProcessingType)(implicit user: LoggedUser): Option[Data]
  11. final def forProcessingTypeE(processingType: ProcessingType)(implicit user: LoggedUser): Either[UnauthorizedError, Option[Data]]
  12. final def forProcessingTypeEUnsafe(processingType: ProcessingType)(implicit user: LoggedUser): Either[UnauthorizedError, Data]
  13. final def forProcessingTypeUnsafe(processingType: ProcessingType)(implicit user: LoggedUser): Data
  14. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  15. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  16. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  17. final def mapCombined[CC](fun: (CombinedData) => CC): ProcessingTypeDataProvider[Data, CC]
  18. final def mapValues[TT](fun: (Data) => TT): ProcessingTypeDataProvider[TT, CombinedData]
  19. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  20. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  21. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  22. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  23. def toString(): String
    Definition Classes
    AnyRef → Any
  24. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  25. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  26. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from AnyRef

Inherited from Any

Ungrouped