object SimpleAIKey extends ProjectInformationKey[(Method) => AIResult { val domain: org.opalj.ai.Domain with org.opalj.ai.domain.RecordDefUse }, (Method) => Domain with RecordDefUse]
Key to get the result of the abstract interpretation of a method using a configured domain factory. The factory is configured using project specific configuration data.
- Source
- SimpleAIKey.scala
To specify the domain that you want to use for performing the abstract interpretation:
project.getOrCreateProjectInformationKeyInitializationData( SimpleAIKey, (m: Method) => { // call the constructor of the domain of your liking new org....Domain(p,m) } )
- Note
To get the index use the org.opalj.br.analyses.Project's
,get
method and pass inthis
object.If you are developing analyses using the
PropertyStore
use an appropriate analysis that stores the results of an abstract interpretation in the store.
- Alphabetic
- By Inheritance
- SimpleAIKey
- 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): (Method) => AIResult { val domain: org.opalj.ai.Domain with org.opalj.ai.domain.RecordDefUse }
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
- SimpleAIKey → 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]]
The SimpleAIKey has no special prerequisites.
The SimpleAIKey has no special prerequisites.
- Definition Classes
- SimpleAIKey → ProjectInformationKey
- 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