Packages

case class IntermediateResult[P <: Property](e: Entity, lb: P, ub: P, dependees: Traversable[SomeEOptionP], c: OnUpdateContinuation, hint: PropertyComputationHint = DefaultPropertyComputation) extends PropertyComputationResult with Product with Serializable

Encapsulates an intermediate result of the computation of a property.

Intermediate results are to be used if further refinements are possible. Hence, if a property of any of the dependees changes (outgoing dependencies), the given continuation c is invoked.

All current computations that depend on the property of the entity will be invoked.

dependees

The entity/property (kind) pairs the analysis depends on. Each entity/property kind pair must occur at most once in the list, the current entity/property kind (ep) must not occur; i.e., self-reference are forbidden! A dependee must have been queried using PropertyStore.apply(...); directly returning a dependee without a prior querying of the property store can lead to unexpected results. A dependee must NEVER be less precise than the value returned by the query. In general, the set of dependees is expected to shrink over time and the result should capture the effect of all properties. However, it is possible to first wait on specific properties of specific entities, if these properties ultimately determine the overall result. Hence, it is possible to partition the set of entity / properties and to query each group one after another. An IntermediateResult returned by an OnUpdateContinuation must contain the EPS given to the continuation function or a newer EPS (i.e., an onUpdateContinuation is allowed to query the store again). The given set of dependees must not be mutated; it is used internally and if the set is mutated, propagation of changes no longer works reliably.

c

The function which is called if a property of any of the dependees is updated. c does not have to be thread safe unless the same instance of c is returned multiple times for different entities (e) which should be avoided and is generally not necessary. I.e., it is recommended to think about c as the function that completes the computation of the property p for the entity e identified by ep. In general, c can have (mutual) state encapsulates (temporary) information required to compute the final property.

Note

All elements on which the result declares to be dependent on must have been queried before (using one of the apply functions of the property store.)

Linear Supertypes
Serializable, Serializable, Product, Equals, PropertyComputationResult, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. IntermediateResult
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. PropertyComputationResult
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new IntermediateResult(e: Entity, lb: P, ub: P, dependees: Traversable[SomeEOptionP], c: OnUpdateContinuation, hint: PropertyComputationHint = DefaultPropertyComputation)

    dependees

    The entity/property (kind) pairs the analysis depends on. Each entity/property kind pair must occur at most once in the list, the current entity/property kind (ep) must not occur; i.e., self-reference are forbidden! A dependee must have been queried using PropertyStore.apply(...); directly returning a dependee without a prior querying of the property store can lead to unexpected results. A dependee must NEVER be less precise than the value returned by the query. In general, the set of dependees is expected to shrink over time and the result should capture the effect of all properties. However, it is possible to first wait on specific properties of specific entities, if these properties ultimately determine the overall result. Hence, it is possible to partition the set of entity / properties and to query each group one after another. An IntermediateResult returned by an OnUpdateContinuation must contain the EPS given to the continuation function or a newer EPS (i.e., an onUpdateContinuation is allowed to query the store again). The given set of dependees must not be mutated; it is used internally and if the set is mutated, propagation of changes no longer works reliably.

    c

    The function which is called if a property of any of the dependees is updated. c does not have to be thread safe unless the same instance of c is returned multiple times for different entities (e) which should be avoided and is generally not necessary. I.e., it is recommended to think about c as the function that completes the computation of the property p for the entity e identified by ep. In general, c can have (mutual) state encapsulates (temporary) information required to compute the final property.

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 asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. val c: OnUpdateContinuation
  6. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  7. val dependees: Traversable[SomeEOptionP]
  8. val e: Entity
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(other: Any): Boolean
    Definition Classes
    IntermediateResult → Equals → AnyRef → Any
  11. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. def hashCode(): Int
    Definition Classes
    IntermediateResult → AnyRef → Any
  14. val hint: PropertyComputationHint
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. val lb: P
  17. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  18. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  19. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  20. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  21. def toString(): String
    Definition Classes
    IntermediateResult → AnyRef → Any
  22. val ub: P
  23. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  25. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from PropertyComputationResult

Inherited from AnyRef

Inherited from Any

Ungrouped