sealed abstract class Computation[+V, +E] extends AnyRef
Encapsulates the result of a computation in a domain. In general, the
result is either some value V or some exception(s) E. In some cases, however,
when the domain cannot precisely determine the result, it may be both: some
exceptional value(s) and a value.
In the latter case the abstract interpreter will generally follow all
possible paths. A computation that declares to return a result
(i.e., the type V is not Nothing) must not return a result and/or throw an
exception if the computation did not finish.
Querying Computations
Before accessing a computation's result (result or exceptions) it first
has to be checked whether the computation returned normally (returnsNormally)
or threw an exception (throwsException). Only if returnsNormally returns
true the methods result and hasResult are defined.
- V
The result of the computation. Typically a
DomainValue; if the computation is executed for its side effect (e.g., as in case of amonitorenterormonitorexitinstruction) the type ofVmaybeNothing.- E
The exception(s) that maybe thrown by the computation. Typically, a
DomainValuewhich represents a reference value with typejava.lang.Throwableor a subtype thereof. If multiple exceptions may be thrown it may also be a set orIterableofDomainValues (e.g.,ExceptionValues).
- Source
- Computation.scala
- Note
The precise requirements on the result of a computation are determined by the Domain object's methods that perform computations.
- Alphabetic
- By Inheritance
- Computation
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def exceptions: E
The exception or exceptions when the computation raised an exception; defined if and only if
throwsExceptionreturnstrue.The exception or exceptions when the computation raised an exception; defined if and only if
throwsExceptionreturnstrue.E.g., the invocation of a method may lead to several (checked/unchecked) exceptions.
- Annotations
- @throws(scala.this.throws.<init>$default$1[UnsupportedOperationException])
- abstract def hasResult: Boolean
Returns
trueif this computation has a result value,falseotherwise.Returns
trueif this computation has a result value,falseotherwise.- Note
A method with return type
voidmay return normally (returnsNormally), but will never have a result. I.e., for such method,hasResultwill always be false.
- abstract def result: V
The return value of the computation (if any); defined if and only if
hasResultreturns true.The return value of the computation (if any); defined if and only if
hasResultreturns true.- Annotations
- @throws(scala.this.throws.<init>$default$1[UnsupportedOperationException])
- abstract def returnsNormally: Boolean
Returns
trueif this computation may have returned normally without throwing an exception.Returns
trueif this computation may have returned normally without throwing an exception. Given that some computations are performed for their side effect only, the computation may not have a result. - abstract def throwsException: Boolean
Returns
trueif this computation may have raised an exception. - abstract def updateExceptions[X](exceptions: X): Computation[V, X]
Updates the exception associated with the represented computation.
Updates the exception associated with the represented computation.
This method is only supported if the computation had an associated exception!
- Annotations
- @throws(scala.this.throws.<init>$default$1[UnsupportedOperationException])
- abstract def updateResult[X](result: X): Computation[X, E]
Updates the result associated with the represented computation.
Updates the result associated with the represented computation.
This method is only supported if the computation had a result!
- Annotations
- @throws(scala.this.throws.<init>$default$1[UnsupportedOperationException])
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated @Deprecated
- Deprecated