object AIDomainFactoryKey extends ProjectInformationKey[ProjectSpecificAIExecutor, Set[Class[_ <: AnyRef]]]
Key to get the factory (actually this is a meta-factory) to create the domains that are
used to perform abstract interpretations.
The domain that is going to be used is determined by getting the set of (partial)domains
that are required and then computing the cheapest domain;
see org.opalj.ai.common.DomainRegistry for further information.
Hence, the AIResult
's domain is guaranteed to implement all required (partial) domains.
This key's project specific initialization data are java.lang.Class
objects which
have to be implemented by the finally chosen domain.
- Source
- AIDomainFactoryKey.scala
- Alphabetic
- By Inheritance
- AIDomainFactoryKey
- ProjectInformationKey
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
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()
- def compute(project: SomeProject, domainFactories: (Iterable[Class[_ <: AnyRef]]) => Set[Class[_ <: Domain]]): ProjectSpecificAIExecutor
- def compute(project: SomeProject): ProjectSpecificAIExecutor
Returns an object which performs and caches the result of the abstract interpretation of a method when required.
Returns an object which performs and caches the result of the abstract interpretation of a method when required.
All methods belonging to a project are analyzed using the same
domainFactory
. Hence, thedomainFactory
needs to be set before compute is called/this key is passed to a specific project. If multiple projects are instead concurrently, external synchronization is necessary (e.g., on the ProjectInformationKey) to ensure that each project is instantiated using the desired domain.- Definition Classes
- AIDomainFactoryKey → ProjectInformationKey
- 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()
- def requirements(project: SomeProject): Seq[ProjectInformationKey[Nothing, Nothing]]
This key has no special prerequisites.
This key has no special prerequisites.
- Definition Classes
- AIDomainFactoryKey → ProjectInformationKey
- Note
The configuration is done using ProjectInformationKeyInitializationData.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final val uniqueId: Int
The unique id of this key.
The unique id of this key. The key is used to enable efficient access and is automatically assigned by OPAL and will not change after that.
- Definition Classes
- ProjectInformationKey
- 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