Class ExecEnvImpl
- java.lang.Object
-
- org.eclipse.emf.common.notify.impl.BasicNotifierImpl
-
- org.eclipse.emf.ecore.impl.BasicEObjectImpl
-
- org.eclipse.emf.ecore.impl.EObjectImpl
-
- org.eclipse.m2m.atl.emftvm.impl.ExecEnvImpl
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.emf.ecore.impl.BasicEObjectImpl
org.eclipse.emf.ecore.impl.BasicEObjectImpl.EPropertiesHolder, org.eclipse.emf.ecore.impl.BasicEObjectImpl.EPropertiesHolderBaseImpl, org.eclipse.emf.ecore.impl.BasicEObjectImpl.EPropertiesHolderImpl
-
Nested classes/interfaces inherited from class org.eclipse.emf.common.notify.impl.BasicNotifierImpl
org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EAdapterList<E extends java.lang.Object & org.eclipse.emf.common.notify.Adapter>, org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EObservableAdapterList, org.eclipse.emf.common.notify.impl.BasicNotifierImpl.EScannableAdapterList
-
-
Field Summary
Fields Modifier and Type Field Description protected Validator<CodeBlock>
cbStackValidator
Code block stack level validator.protected static RuleMode
CURRENT_PHASE_EDEFAULT
The default value of the 'Current Phase
' attribute.protected RuleMode
currentPhase
The cached value of the 'Current Phase
' attribute.protected java.util.Map<org.eclipse.emf.ecore.EObject,org.eclipse.m2m.atl.emftvm.impl.ExecEnvImpl.DeletionEntry>
deletionQueue
Queue of elements to be deleted, along with theStackFrame
context in which the deletion takes place.protected FieldContainer
fieldContainer
Field storage and lookup.protected org.eclipse.emf.common.util.EList<Operation>
initChain
The chain of 'init()
' operations to be executed before the automatic rules.protected java.util.Map<org.eclipse.emf.ecore.resource.Resource,Model>
inoutModelOf
Lookup table of (resource -> model).protected java.util.Map<java.lang.String,Model>
inoutModels
The cached value of the 'Inout Models
' attribute.protected java.util.Map<org.eclipse.emf.ecore.resource.Resource,Model>
inputModelOf
Lookup table of (resource -> model).protected java.util.Map<java.lang.String,Model>
inputModels
The cached value of the 'Input Models
' attribute.protected Validator<Instruction>
instrStackValidator
Instruction stack level validator.protected java.util.Map<java.lang.String,Model>
internalInoutModels
The internal value of the 'Inout Models
' attribute.protected java.util.Map<java.lang.String,Model>
internalInputModels
The internal value of the 'Input Models
' attribute.protected java.util.Map<java.lang.String,Metamodel>
internalMetaModels
The internal value of the 'Meta Models
' attribute.protected java.util.Map<java.lang.String,Module>
internalModules
The internal value of the 'Modules
' attribute.protected java.util.Map<java.lang.String,Model>
internalOutputModels
The internal value of the 'Output Models
' attribute.protected static boolean
JIT_DISABLED_EDEFAULT
The default value of the 'Jit Disabled
' attribute.protected boolean
jitDisabled
The cached value of the 'Jit Disabled
' attribute.protected java.util.Set<java.lang.String>
loadedModules
Set of modules that have effectively been loaded.protected org.eclipse.emf.common.util.EList<Operation>
mainChain
The chain of 'main()
' operations to be executed after the automatic rules.protected TraceLinkSet
matches
The cached value of the 'Matches
' reference.protected java.util.Map<Metamodel,java.lang.String>
metaModelId
Lookup table of (metamodel -> ID).protected java.util.Map<org.eclipse.emf.ecore.resource.Resource,Metamodel>
metaModelOf
Lookup table of (resource -> metamodel).protected java.util.Map<java.lang.String,Metamodel>
metaModels
The cached value of the 'Meta Models
' attribute.protected boolean
modelCacheInit
Model cache initialised?protected java.util.Map<Model,java.lang.String>
modelId
Lookup table of (model -> ID).protected java.util.Map<org.eclipse.emf.ecore.resource.Resource,Model>
modelOf
Lookup table of (resource -> model).protected java.util.Map<java.lang.String,Module>
modules
The cached value of the 'Modules
' attribute.protected VMMonitor
monitor
TheVMMonitor
for the currently running VM instance.protected java.util.Map<java.lang.String,java.util.Map<java.lang.Integer,TypeMap<java.lang.Object,java.lang.Object>>>
operations
protected java.util.Map<org.eclipse.emf.ecore.resource.Resource,Model>
outputModelOf
Lookup table of (resource -> model).protected java.util.Map<java.lang.String,Model>
outputModels
The cached value of the 'Output Models
' attribute.protected java.util.Map<org.eclipse.emf.ecore.EObject,org.eclipse.m2m.atl.emftvm.impl.ExecEnvImpl.RemapEntry>
remapQueue
Queue of source/target values to be remapped, along with theStackFrame
context in which the remapping takes place.protected java.util.Map<java.lang.String,Rule>
rules
Lookup table for rules: (name -> rule).protected java.util.Queue<org.eclipse.m2m.atl.emftvm.impl.ExecEnvImpl.QueueEntry>
setQueue
Queue
of features/fields to be set, along with theStackFrame
context in which the set takes place.protected java.util.Map<java.lang.String,java.util.Map<java.lang.Integer,TypeMap<java.lang.Object,java.lang.Object>>>
staticOperations
protected TraceLinkSet
traces
The cached value of the 'Traces
' reference.protected java.util.Map<TraceLink,java.lang.Object>
uniqueResults
The cached value of the 'Unique Results
' attribute.-
Fields inherited from class org.eclipse.emf.ecore.impl.EObjectImpl
eAdapters, eContainer, eContainerFeatureID, EDELIVER, EDYNAMIC_CLASS, eFlags, ELAST_EOBJECT_FLAG, ELAST_NOTIFIER_FLAG, eProperties, EPROXY
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ExecEnvImpl()
Creates a newExecEnvImpl
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description TraceLinkSet
basicGetMatches()
Returns the value of the 'Matches' reference.TraceLinkSet
basicGetTraces()
Returns the value of the 'Traces' reference.protected void
cacheModels()
Caches run-time models in various lookup tables.protected void
clearModelCaches()
Clears the model caches.void
clearModels()
Removes all registered input, in/out, and output models from thisExecEnv
.protected void
clearRuleModels(Rule r)
Clears model references for aRule
.void
deleteQueue()
Deletes all elements in the deletion queue.java.lang.Object
eGet(int featureID, boolean resolve, boolean coreType)
boolean
eIsSet(int featureID)
void
eSet(int featureID, java.lang.Object newValue)
protected org.eclipse.emf.ecore.EClass
eStaticClass()
Returns theEClass
that correspond to this metaclass.void
eUnset(int featureID)
Field
findField(java.lang.Object context, java.lang.String name)
Operation
findOperation(java.lang.Object context, java.lang.String name)
Operation
findOperation(java.lang.Object context, java.lang.String name, java.lang.Object parameterType)
Operation
findOperation(java.lang.Object context, java.lang.String name, java.lang.Object[] parameterTypes)
Rule
findRule(java.lang.String name)
Field
findStaticField(java.lang.Object context, java.lang.String name)
Operation
findStaticOperation(java.lang.Object context, java.lang.String name)
Operation
findStaticOperation(java.lang.Object context, java.lang.String name, java.lang.Object parameterType)
Operation
findStaticOperation(java.lang.Object context, java.lang.String name, java.lang.Object[] parameterTypes)
java.lang.Object
findType(java.lang.String modelName, java.lang.String typeName)
Finds the type for the given (meta-)modelName
andtypeName
.RuleMode
getCurrentPhase()
Model
getInoutModelOf(org.eclipse.emf.ecore.EObject object)
java.util.Map<java.lang.String,Model>
getInoutModels()
Returns the value of the 'Inout Models' attribute.Model
getInputModelOf(org.eclipse.emf.ecore.EObject object)
java.util.Map<java.lang.String,Model>
getInputModels()
Returns the value of the 'Input Models' attribute.CodeBlockJIT
getJITCompiler()
Returns the JIT compiler instance for this execution environment.TraceLinkSet
getMatches()
Returns the value of the 'Matches' reference.Metamodel
getMetaModel(org.eclipse.emf.ecore.resource.Resource resource)
java.lang.String
getMetaModelID(Metamodel metamodel)
Returns the ID under whichmetamodel
is registered within thisExecEnv
.java.util.Map<java.lang.String,Metamodel>
getMetaModels()
Returns the value of the 'Meta Models' attribute.java.lang.String
getModelID(Model model)
Returns the ID under whichmodel
is registered within thisExecEnv
.Model
getModelOf(org.eclipse.emf.ecore.EObject object)
java.util.Map<java.lang.String,Module>
getModules()
Returns the value of the 'Modules' attribute.VMMonitor
getMonitor()
Model
getOutputModelOf(org.eclipse.emf.ecore.EObject object)
java.util.Map<java.lang.String,Model>
getOutputModels()
Returns the value of the 'Output Models' attribute.LazyList<Rule>
getRules()
Returns all rules registered in thisExecEnv
.TraceLinkSet
getTraces()
Returns the value of the 'Traces' reference.java.util.Map<TraceLink,java.lang.Object>
getUniqueResults()
Returns the value of the 'Unique Results' attribute.boolean
hasField(java.lang.String name)
Returnstrue
iff this execution environment has any registered fields with the givenname
.boolean
hasOperation(java.lang.String name, int argcount)
Returnstrue
iff this execution environment has any registered operations with the givenname
andargcount
.boolean
hasStaticField(java.lang.String name)
Returnstrue
iff this execution environment has any registered static fields with the givenname
.boolean
hasStaticOperation(java.lang.String name, int argcount)
Returnstrue
iff this execution environment has any registered static operations with the givenname
andargcount
.boolean
isJitDisabled()
protected boolean
isRuleStateCompiled()
Returns whether the internal state of the rules has been compiled.Module
loadModule(ModuleResolver resolver, java.lang.String name)
Loads the module with the givenname
and its imports closure into thisExecEnv
using theresolver
, and registers its contents for execution.Module
loadModule(ModuleResolver resolver, java.lang.String name, boolean validate)
Loads the module with the givenname
and its imports closure into thisExecEnv
using theresolver
, and registers its contents for execution.void
queueForAdd(org.eclipse.emf.ecore.EStructuralFeature feature, org.eclipse.emf.ecore.EObject object, java.lang.Object value, int index, StackFrame frame)
Queues the given object and value for adding a value to the given feature.void
queueForAdd(Field field, java.lang.Object object, java.lang.Object value, int index, StackFrame frame)
Queues the given object and value for adding a value to the given feature.void
queueForDelete(org.eclipse.emf.ecore.EObject element, StackFrame frame)
Queueselement
for deletion.void
queueForRemap(org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EObject target, StackFrame frame)
Queues the given source and target value for remapping.void
queueForRemove(org.eclipse.emf.ecore.EStructuralFeature feature, org.eclipse.emf.ecore.EObject object, java.lang.Object value, StackFrame frame)
Queues the given object and value for removing a value from the given feature.void
queueForRemove(Field field, java.lang.Object object, java.lang.Object value, StackFrame frame)
Queues the given object and value for removing a value from the given feature.void
queueForSet(org.eclipse.emf.ecore.EStructuralFeature feature, org.eclipse.emf.ecore.EObject object, java.lang.Object value, StackFrame frame)
Queues the given object and value for setting the given feature.void
queueForSet(Field field, java.lang.Object object, java.lang.Object value, StackFrame frame)
Queues the given object and value for setting the given field.void
queueXmiIDForAdd(org.eclipse.emf.ecore.EObject object, java.lang.Object value, int index, StackFrame frame)
Queues the given object and value for adding to the XMI ID.void
queueXmiIDForRemove(org.eclipse.emf.ecore.EObject object, java.lang.Object value, StackFrame frame)
Queues the given object and value for removing from the XMI ID.void
queueXmiIDForSet(org.eclipse.emf.ecore.EObject object, java.lang.Object value, StackFrame frame)
Queues the given object and value for setting the XMI ID.protected void
registerFeature(Feature feature)
void
registerInOutModel(java.lang.String name, Model model)
Registersmodel
as an in/out model undername
.void
registerInputModel(java.lang.String name, Model model)
Registersmodel
as an input model undername
.void
registerMetaModel(java.lang.String name, Metamodel metamodel)
Registersmetamodel
undername
.void
registerOutputModel(java.lang.String name, Model model)
Registersmodel
as an output model undername
.protected void
registerRule(Rule r)
void
remapQueue()
Processes all element in the "remap" queue.protected void
resetJITCompiler()
Sets the JIT compiler instance for this execution environment tonull
.protected void
resolveRuleModels(Rule r)
Resolves model references for aRule
.java.lang.Object
run(TimingData timingData)
Executes the loaded modules and returns the execution result.void
setJitDisabled(boolean newJitDisabled)
void
setMonitor(VMMonitor monitor)
void
setQueue()
Processes all elements in the "set" queue.protected void
setRuleStateCompiled(boolean ruleStateCompiled)
Sets whether the internal state of the rules has been compiled.java.lang.String
toString()
-
Methods inherited from class org.eclipse.emf.ecore.impl.EObjectImpl
eAdapters, eBasicAdapters, eBasicProperties, eBasicSetContainer, eClass, eContainerFeatureID, eDeliver, eInternalContainer, eInvoke, eIsProxy, eProperties, eSetClass, eSetDeliver, eSetProxyURI
-
Methods inherited from class org.eclipse.emf.ecore.impl.BasicEObjectImpl
eAddVirtualValue, eAllContents, eBaseStructuralFeatureID, eBasicRemoveFromContainer, eBasicRemoveFromContainerFeature, eBasicSetContainer, eComputeVirtualValuesCapacity, eContainer, eContainerAdapterArray, eContainingFeature, eContainmentFeature, eContainmentFeature, eContains, eContents, eCrossReferences, eDerivedOperationID, eDerivedOperationID, eDerivedStructuralFeatureID, eDerivedStructuralFeatureID, eDirectResource, eDynamicBasicRemoveFromContainer, eDynamicClass, eDynamicFeature, eDynamicFeatureID, eDynamicGet, eDynamicGet, eDynamicGet, eDynamicInverseAdd, eDynamicInverseAdd, eDynamicInverseRemove, eDynamicInverseRemove, eDynamicInvoke, eDynamicInvoke, eDynamicIsSet, eDynamicIsSet, eDynamicIsSet, eDynamicSet, eDynamicSet, eDynamicSet, eDynamicUnset, eDynamicUnset, eDynamicUnset, eGet, eGet, eGet, eHasSettings, eInternalResource, eInverseAdd, eInverseAdd, eInverseRemove, eInverseRemove, eInvocationDelegate, eInvoke, eIsSet, eObjectForURIFragmentSegment, eOpenGet, eOpenIsSet, eOpenSet, eOpenUnset, eProxyURI, eRemoveVirtualValue, eResolveProxy, eResource, eSet, eSetDirectResource, eSetResource, eSetStore, eSetting, eSettingDelegate, eSettings, eSetVirtualIndexBits, eSetVirtualValue, eSetVirtualValues, eStaticFeatureCount, eStaticOperationCount, eStore, eUnset, eURIFragmentSegment, eVirtualBitCount, eVirtualGet, eVirtualGet, eVirtualIndex, eVirtualIndexBits, eVirtualIsSet, eVirtualSet, eVirtualUnset, eVirtualValue, eVirtualValues
-
Methods inherited from class org.eclipse.emf.common.notify.impl.BasicNotifierImpl
eBasicAdapterArray, eBasicHasAdapters, eNotificationRequired, eNotify
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
-
-
-
Field Detail
-
metaModels
protected java.util.Map<java.lang.String,Metamodel> metaModels
The cached value of the 'Meta Models
' attribute.- See Also:
getMetaModels()
-
inputModels
protected java.util.Map<java.lang.String,Model> inputModels
The cached value of the 'Input Models
' attribute.- See Also:
getInputModels()
-
inoutModels
protected java.util.Map<java.lang.String,Model> inoutModels
The cached value of the 'Inout Models
' attribute.- See Also:
getInoutModels()
-
outputModels
protected java.util.Map<java.lang.String,Model> outputModels
The cached value of the 'Output Models
' attribute.- See Also:
getOutputModels()
-
modules
protected java.util.Map<java.lang.String,Module> modules
The cached value of the 'Modules
' attribute.- See Also:
getModules()
-
matches
protected TraceLinkSet matches
The cached value of the 'Matches
' reference.- See Also:
getMatches()
-
traces
protected TraceLinkSet traces
The cached value of the 'Traces
' reference.- See Also:
getTraces()
-
uniqueResults
protected java.util.Map<TraceLink,java.lang.Object> uniqueResults
The cached value of the 'Unique Results
' attribute.- See Also:
getUniqueResults()
-
JIT_DISABLED_EDEFAULT
protected static final boolean JIT_DISABLED_EDEFAULT
The default value of the 'Jit Disabled
' attribute.- See Also:
isJitDisabled()
, Constant Field Values
-
jitDisabled
protected boolean jitDisabled
The cached value of the 'Jit Disabled
' attribute.- See Also:
isJitDisabled()
-
CURRENT_PHASE_EDEFAULT
protected static final RuleMode CURRENT_PHASE_EDEFAULT
The default value of the 'Current Phase
' attribute.- See Also:
getCurrentPhase()
-
currentPhase
protected RuleMode currentPhase
The cached value of the 'Current Phase
' attribute.- See Also:
getCurrentPhase()
-
internalMetaModels
protected final java.util.Map<java.lang.String,Metamodel> internalMetaModels
The internal value of the 'Meta Models
' attribute.
-
internalInputModels
protected final java.util.Map<java.lang.String,Model> internalInputModels
The internal value of the 'Input Models
' attribute.
-
internalInoutModels
protected final java.util.Map<java.lang.String,Model> internalInoutModels
The internal value of the 'Inout Models
' attribute.
-
internalOutputModels
protected final java.util.Map<java.lang.String,Model> internalOutputModels
The internal value of the 'Output Models
' attribute.
-
internalModules
protected final java.util.Map<java.lang.String,Module> internalModules
The internal value of the 'Modules
' attribute.
-
loadedModules
protected final java.util.Set<java.lang.String> loadedModules
Set of modules that have effectively been loaded. Intended for keeping track of cyclic imports.
-
mainChain
protected final org.eclipse.emf.common.util.EList<Operation> mainChain
The chain of 'main()
' operations to be executed after the automatic rules.
-
initChain
protected final org.eclipse.emf.common.util.EList<Operation> initChain
The chain of 'init()
' operations to be executed before the automatic rules.
-
fieldContainer
protected final FieldContainer fieldContainer
Field storage and lookup.
-
operations
protected final java.util.Map<java.lang.String,java.util.Map<java.lang.Integer,TypeMap<java.lang.Object,java.lang.Object>>> operations
-
staticOperations
protected final java.util.Map<java.lang.String,java.util.Map<java.lang.Integer,TypeMap<java.lang.Object,java.lang.Object>>> staticOperations
-
rules
protected final java.util.Map<java.lang.String,Rule> rules
Lookup table for rules: (name -> rule).
-
modelOf
protected final java.util.Map<org.eclipse.emf.ecore.resource.Resource,Model> modelOf
Lookup table of (resource -> model).
-
inputModelOf
protected final java.util.Map<org.eclipse.emf.ecore.resource.Resource,Model> inputModelOf
Lookup table of (resource -> model).
-
inoutModelOf
protected final java.util.Map<org.eclipse.emf.ecore.resource.Resource,Model> inoutModelOf
Lookup table of (resource -> model).
-
outputModelOf
protected final java.util.Map<org.eclipse.emf.ecore.resource.Resource,Model> outputModelOf
Lookup table of (resource -> model).
-
metaModelOf
protected final java.util.Map<org.eclipse.emf.ecore.resource.Resource,Metamodel> metaModelOf
Lookup table of (resource -> metamodel).
-
modelId
protected final java.util.Map<Model,java.lang.String> modelId
Lookup table of (model -> ID).
-
metaModelId
protected final java.util.Map<Metamodel,java.lang.String> metaModelId
Lookup table of (metamodel -> ID).
-
modelCacheInit
protected boolean modelCacheInit
Model cache initialised?
-
deletionQueue
protected final java.util.Map<org.eclipse.emf.ecore.EObject,org.eclipse.m2m.atl.emftvm.impl.ExecEnvImpl.DeletionEntry> deletionQueue
Queue of elements to be deleted, along with theStackFrame
context in which the deletion takes place.
-
setQueue
protected final java.util.Queue<org.eclipse.m2m.atl.emftvm.impl.ExecEnvImpl.QueueEntry> setQueue
Queue
of features/fields to be set, along with theStackFrame
context in which the set takes place.
-
remapQueue
protected final java.util.Map<org.eclipse.emf.ecore.EObject,org.eclipse.m2m.atl.emftvm.impl.ExecEnvImpl.RemapEntry> remapQueue
Queue of source/target values to be remapped, along with theStackFrame
context in which the remapping takes place. Only one queue entry per source value to remap is supported.
-
cbStackValidator
protected final Validator<CodeBlock> cbStackValidator
Code block stack level validator.
-
instrStackValidator
protected final Validator<Instruction> instrStackValidator
Instruction stack level validator.
-
-
Constructor Detail
-
ExecEnvImpl
protected ExecEnvImpl()
Creates a newExecEnvImpl
.
-
-
Method Detail
-
eStaticClass
protected org.eclipse.emf.ecore.EClass eStaticClass()
Returns theEClass
that correspond to this metaclass.- Overrides:
eStaticClass
in classorg.eclipse.emf.ecore.impl.EObjectImpl
- Returns:
- the
EClass
that correspond to this metaclass.
-
getModules
public java.util.Map<java.lang.String,Module> getModules()
Returns the value of the 'Modules' attribute.If the meaning of the 'Modules' reference list isn't clear, there really should be more of a description here...
- Specified by:
getModules
in interfaceExecEnv
- Returns:
- the value of the 'Modules' attribute.
- See Also:
EmftvmPackage.getExecEnv_Modules()
-
getMatches
public TraceLinkSet getMatches()
Returns the value of the 'Matches' reference.If the meaning of the 'Matches' reference isn't clear, there really should be more of a description here...
- Specified by:
getMatches
in interfaceExecEnv
- Returns:
- the value of the 'Matches' reference.
- See Also:
EmftvmPackage.getExecEnv_Matches()
-
basicGetMatches
public TraceLinkSet basicGetMatches()
Returns the value of the 'Matches' reference.- Returns:
- the value of the 'Matches' reference.
-
getTraces
public TraceLinkSet getTraces()
Returns the value of the 'Traces' reference.If the meaning of the 'Traces' reference isn't clear, there really should be more of a description here...
- Specified by:
getTraces
in interfaceExecEnv
- Returns:
- the value of the 'Traces' reference.
- See Also:
EmftvmPackage.getExecEnv_Traces()
-
basicGetTraces
public TraceLinkSet basicGetTraces()
Returns the value of the 'Traces' reference.- Returns:
- the value of the 'Traces' reference.
-
getUniqueResults
public java.util.Map<TraceLink,java.lang.Object> getUniqueResults()
Returns the value of the 'Unique Results' attribute.If the meaning of the 'Unique Results' attribute isn't clear, there really should be more of a description here...
- Specified by:
getUniqueResults
in interfaceExecEnv
- Returns:
- the value of the 'Unique Results' attribute.
- See Also:
EmftvmPackage.getExecEnv_UniqueResults()
-
isJitDisabled
public boolean isJitDisabled()
- Specified by:
isJitDisabled
in interfaceExecEnv
- Returns:
- the value of the 'Jit Disabled' attribute.
- See Also:
ExecEnv.setJitDisabled(boolean)
,EmftvmPackage.getExecEnv_JitDisabled()
-
setJitDisabled
public void setJitDisabled(boolean newJitDisabled)
- Specified by:
setJitDisabled
in interfaceExecEnv
- Parameters:
newJitDisabled
- the new value of the 'Jit Disabled' attribute.- See Also:
ExecEnv.isJitDisabled()
-
getCurrentPhase
public RuleMode getCurrentPhase()
- Specified by:
getCurrentPhase
in interfaceExecEnv
- Returns:
- the value of the 'Current Phase' attribute.
- See Also:
RuleMode
,EmftvmPackage.getExecEnv_CurrentPhase()
-
getMonitor
public VMMonitor getMonitor()
Returns the
VMMonitor
for the currently running VM instance.- Specified by:
getMonitor
in interfaceExecEnv
- Returns:
- the
VMMonitor
for the currently running VM instance. - See Also:
-
setMonitor
public void setMonitor(VMMonitor monitor)
- Specified by:
setMonitor
in interfaceExecEnv
-
registerMetaModel
public void registerMetaModel(java.lang.String name, Metamodel metamodel)
Registersmetamodel
undername
.- Specified by:
registerMetaModel
in interfaceExecEnv
- Parameters:
name
- the name under which to registermetamodel
- the metamodel to register
-
registerInputModel
public void registerInputModel(java.lang.String name, Model model)
Registersmodel
as an input model undername
.- Specified by:
registerInputModel
in interfaceExecEnv
- Parameters:
name
- the name under which to registermodel
- the model to register
-
registerInOutModel
public void registerInOutModel(java.lang.String name, Model model)
Registersmodel
as an in/out model undername
.- Specified by:
registerInOutModel
in interfaceExecEnv
- Parameters:
name
- the name under which to registermodel
- the model to register
-
registerOutputModel
public void registerOutputModel(java.lang.String name, Model model)
Registersmodel
as an output model undername
.- Specified by:
registerOutputModel
in interfaceExecEnv
- Parameters:
name
- the name under which to registermodel
- the model to register
-
clearModels
public void clearModels()
Removes all registered input, in/out, and output models from thisExecEnv
.- Specified by:
clearModels
in interfaceExecEnv
-
getMetaModel
public Metamodel getMetaModel(org.eclipse.emf.ecore.resource.Resource resource)
- Specified by:
getMetaModel
in interfaceExecEnv
- Parameters:
resource
- the EMFResource
of theMetamodel
- Returns:
- the
Metamodel
-
queueForSet
public void queueForSet(org.eclipse.emf.ecore.EStructuralFeature feature, org.eclipse.emf.ecore.EObject object, java.lang.Object value, StackFrame frame)
Queues the given object and value for setting the given feature.- Specified by:
queueForSet
in interfaceExecEnv
- Parameters:
feature
- the feature to setobject
- the object for which to set the featurevalue
- the feature value to setframe
- the stack frame context in which to set the feature value
-
queueForSet
public void queueForSet(Field field, java.lang.Object object, java.lang.Object value, StackFrame frame)
Queues the given object and value for setting the given field.- Specified by:
queueForSet
in interfaceExecEnv
- Parameters:
field
- the field to setobject
- the object for which to set the fieldvalue
- the field value to setframe
- the stack frame context in which to set the field value
-
queueXmiIDForSet
public void queueXmiIDForSet(org.eclipse.emf.ecore.EObject object, java.lang.Object value, StackFrame frame)
Queues the given object and value for setting the XMI ID.- Specified by:
queueXmiIDForSet
in interfaceExecEnv
- Parameters:
object
- the object for which to set the fieldvalue
- the field value to setframe
- the stack frame context in which to set the field value
-
queueForAdd
public void queueForAdd(org.eclipse.emf.ecore.EStructuralFeature feature, org.eclipse.emf.ecore.EObject object, java.lang.Object value, int index, StackFrame frame)
Queues the given object and value for adding a value to the given feature.- Specified by:
queueForAdd
in interfaceExecEnv
- Parameters:
feature
- the feature to add toobject
- the object for which to add to the featurevalue
- the feature value to addindex
- the index at which to add, or-1
frame
- the stack frame context in which to add to the feature value
-
queueForAdd
public void queueForAdd(Field field, java.lang.Object object, java.lang.Object value, int index, StackFrame frame)
Queues the given object and value for adding a value to the given feature.- Specified by:
queueForAdd
in interfaceExecEnv
- Parameters:
field
- the field to add toobject
- the object for which to add to the fieldvalue
- the field value to addindex
- the index at which to add, or-1
frame
- the stack frame context in which to add to the field value
-
queueXmiIDForAdd
public void queueXmiIDForAdd(org.eclipse.emf.ecore.EObject object, java.lang.Object value, int index, StackFrame frame)
Queues the given object and value for adding to the XMI ID.- Specified by:
queueXmiIDForAdd
in interfaceExecEnv
- Parameters:
object
- the object for which to add to the fieldvalue
- the field value to addindex
- the index at which to add, or-1
frame
- the stack frame context in which to add to the field value
-
queueForRemove
public void queueForRemove(org.eclipse.emf.ecore.EStructuralFeature feature, org.eclipse.emf.ecore.EObject object, java.lang.Object value, StackFrame frame)
Queues the given object and value for removing a value from the given feature.- Specified by:
queueForRemove
in interfaceExecEnv
- Parameters:
feature
- the feature to remove fromobject
- the object for which to remove from the featurevalue
- the feature value to removeframe
- the stack frame context in which to remove from the feature value
-
queueForRemove
public void queueForRemove(Field field, java.lang.Object object, java.lang.Object value, StackFrame frame)
Queues the given object and value for removing a value from the given feature.- Specified by:
queueForRemove
in interfaceExecEnv
- Parameters:
field
- the field to remove fromobject
- the object for which to remove from the fieldvalue
- the field value to removeframe
- the stack frame context in which to remove from the field value
-
queueXmiIDForRemove
public void queueXmiIDForRemove(org.eclipse.emf.ecore.EObject object, java.lang.Object value, StackFrame frame)
Queues the given object and value for removing from the XMI ID.- Specified by:
queueXmiIDForRemove
in interfaceExecEnv
- Parameters:
object
- the object for which to remove from the fieldvalue
- the field value to removeframe
- the stack frame context in which to remove from the field value
-
setQueue
public void setQueue()
Processes all elements in the "set" queue. Sets all queued features and fields, and clears the queue.
-
queueForRemap
public void queueForRemap(org.eclipse.emf.ecore.EObject source, org.eclipse.emf.ecore.EObject target, StackFrame frame)
Queues the given source and target value for remapping.- Specified by:
queueForRemap
in interfaceExecEnv
- Parameters:
source
- the source value to remaptarget
- the target value to map toframe
- the stack frame context in which to remap
-
remapQueue
public void remapQueue()
Processes all element in the "remap" queue. Remaps all queued source/target value pairs, and clears the queue.- Specified by:
remapQueue
in interfaceExecEnv
-
getMetaModels
public java.util.Map<java.lang.String,Metamodel> getMetaModels()
Returns the value of the 'Meta Models' attribute. The default value is""
.If the meaning of the 'Meta Models' attribute isn't clear, there really should be more of a description here...
- Specified by:
getMetaModels
in interfaceExecEnv
- Returns:
- the value of the 'Meta Models' attribute.
- See Also:
EmftvmPackage.getExecEnv_MetaModels()
-
getInputModels
public java.util.Map<java.lang.String,Model> getInputModels()
Returns the value of the 'Input Models' attribute. The default value is""
.If the meaning of the 'Input Models' attribute isn't clear, there really should be more of a description here...
- Specified by:
getInputModels
in interfaceExecEnv
- Returns:
- the value of the 'Input Models' attribute.
- See Also:
EmftvmPackage.getExecEnv_InputModels()
-
getInoutModels
public java.util.Map<java.lang.String,Model> getInoutModels()
Returns the value of the 'Inout Models' attribute. The default value is""
.If the meaning of the 'Inout Models' attribute isn't clear, there really should be more of a description here...
- Specified by:
getInoutModels
in interfaceExecEnv
- Returns:
- the value of the 'Inout Models' attribute.
- See Also:
EmftvmPackage.getExecEnv_InoutModels()
-
getOutputModels
public java.util.Map<java.lang.String,Model> getOutputModels()
Returns the value of the 'Output Models' attribute. The default value is""
.If the meaning of the 'Output Models' attribute isn't clear, there really should be more of a description here...
- Specified by:
getOutputModels
in interfaceExecEnv
- Returns:
- the value of the 'Output Models' attribute.
- See Also:
EmftvmPackage.getExecEnv_OutputModels()
-
loadModule
public Module loadModule(ModuleResolver resolver, java.lang.String name)
Loads the module with the givenname
and its imports closure into thisExecEnv
using theresolver
, and registers its contents for execution.- Specified by:
loadModule
in interfaceExecEnv
- Parameters:
resolver
- the module file resolvername
- the module name- Returns:
- the loaded module
-
loadModule
public Module loadModule(ModuleResolver resolver, java.lang.String name, boolean validate)
Loads the module with the givenname
and its imports closure into thisExecEnv
using theresolver
, and registers its contents for execution.- Specified by:
loadModule
in interfaceExecEnv
- Parameters:
resolver
- the module file resolvername
- the module namevalidate
- iftrue
, validates the loaded bytecode- Returns:
- the loaded module
-
registerFeature
protected void registerFeature(Feature feature)
- Parameters:
feature
- theFeature
to register
-
resolveRuleModels
protected void resolveRuleModels(Rule r)
Resolves model references for aRule
.- Parameters:
rule
- theRule
to resolve
-
clearRuleModels
protected void clearRuleModels(Rule r)
Clears model references for aRule
.- Parameters:
rule
- theRule
to resolve
-
findOperation
public Operation findOperation(java.lang.Object context, java.lang.String name, java.lang.Object[] parameterTypes)
- Specified by:
findOperation
in interfaceExecEnv
- Parameters:
context
- the context type of the operationname
- the operation nameparameterTypes
- the parameter types of the operation- Returns:
- the
Operation
with the given properties, ornull
if none registered
-
findOperation
public Operation findOperation(java.lang.Object context, java.lang.String name)
- Specified by:
findOperation
in interfaceExecEnv
- Parameters:
context
- the context type of the operationname
- the operation name- Returns:
- the
Operation
with the given properties, ornull
if none registered
-
findOperation
public Operation findOperation(java.lang.Object context, java.lang.String name, java.lang.Object parameterType)
- Specified by:
findOperation
in interfaceExecEnv
- Parameters:
context
- the context type of the operationname
- the operation nameparameterType
- the parameter type of the operation- Returns:
- the
Operation
with the given properties, ornull
if none registered
-
hasOperation
public boolean hasOperation(java.lang.String name, int argcount)
Returnstrue
iff this execution environment has any registered operations with the givenname
andargcount
.- Specified by:
hasOperation
in interfaceExecEnv
- Parameters:
name
- the operation nameargcount
- the number of operation arguments (excludingself
)- Returns:
true
iff this execution environment has any registered operations with the givenname
andargcount
-
findStaticOperation
public Operation findStaticOperation(java.lang.Object context, java.lang.String name, java.lang.Object[] parameterTypes)
- Specified by:
findStaticOperation
in interfaceExecEnv
- Parameters:
context
- the context type of the operationname
- the operation nameparameterTypes
- the parameter types of the operation- Returns:
- the static
Operation
with the given properties, ornull
if none registered
-
findStaticOperation
public Operation findStaticOperation(java.lang.Object context, java.lang.String name)
- Specified by:
findStaticOperation
in interfaceExecEnv
- Parameters:
context
- the context type of the operationname
- the operation name- Returns:
- the static
Operation
with the given properties, ornull
if none registered
-
findStaticOperation
public Operation findStaticOperation(java.lang.Object context, java.lang.String name, java.lang.Object parameterType)
- Specified by:
findStaticOperation
in interfaceExecEnv
- Parameters:
context
- the context type of the operationname
- the operation nameparameterType
- the parameter type of the operation- Returns:
- the static
Operation
with the given properties, ornull
if none registered
-
hasStaticOperation
public boolean hasStaticOperation(java.lang.String name, int argcount)
Returnstrue
iff this execution environment has any registered static operations with the givenname
andargcount
.- Specified by:
hasStaticOperation
in interfaceExecEnv
- Parameters:
name
- the operation nameargcount
- the number of operation arguments- Returns:
true
iff this execution environment has any registered static operations with the givenname
andargcount
-
findField
public Field findField(java.lang.Object context, java.lang.String name)
-
hasField
public boolean hasField(java.lang.String name)
Returnstrue
iff this execution environment has any registered fields with the givenname
.
-
findStaticField
public Field findStaticField(java.lang.Object context, java.lang.String name)
- Specified by:
findStaticField
in interfaceExecEnv
- Parameters:
context
- the context type of the fieldname
- the operation name- Returns:
- the static
Field
with the given properties, ornull
if none registered
-
hasStaticField
public boolean hasStaticField(java.lang.String name)
Returnstrue
iff this execution environment has any registered static fields with the givenname
.- Specified by:
hasStaticField
in interfaceExecEnv
- Parameters:
name
- the field name- Returns:
true
iff this execution environment has any registered static fields with the givenname
-
findRule
public Rule findRule(java.lang.String name)
-
findType
public java.lang.Object findType(java.lang.String modelName, java.lang.String typeName) throws java.lang.ClassNotFoundException
Finds the type for the given (meta-)modelName
andtypeName
.- Specified by:
findType
in interfaceExecEnv
- Parameters:
modelName
- the name under which the metamodel that contains the type is registeredtypeName
- the type/metaclass name (may be fully qualified using '::
')- Returns:
- the type/metaclass
- Throws:
java.lang.ClassNotFoundException
- if the type is not found
-
run
public java.lang.Object run(TimingData timingData)
Executes the loaded modules and returns the execution result.
-
cacheModels
protected void cacheModels()
Caches run-time models in various lookup tables.
-
clearModelCaches
protected void clearModelCaches()
Clears the model caches.
-
getModelOf
public Model getModelOf(org.eclipse.emf.ecore.EObject object)
- Specified by:
getModelOf
in interfaceExecEnv
- Parameters:
object
- the object for which to look up the containing model- Returns:
- the
Model
that containsobject
, ornull
if not found.
-
getModelID
public java.lang.String getModelID(Model model)
Returns the ID under whichmodel
is registered within thisExecEnv
.- Specified by:
getModelID
in interfaceExecEnv
- Parameters:
model
- the registeredModel
to retrieve the ID for- Returns:
- the ID under which
model
is registered within thisExecEnv
.
-
getMetaModelID
public java.lang.String getMetaModelID(Metamodel metamodel)
Returns the ID under whichmetamodel
is registered within thisExecEnv
.- Specified by:
getMetaModelID
in interfaceExecEnv
- Parameters:
metamodel
- the registeredMetamodel
to retrieve the ID for- Returns:
- the ID under which
metamodel
is registered within thisExecEnv
.
-
queueForDelete
public void queueForDelete(org.eclipse.emf.ecore.EObject element, StackFrame frame)
Queueselement
for deletion.- Specified by:
queueForDelete
in interfaceExecEnv
- Parameters:
element
- the element to deleteframe
- the stack frame context in which to perform the deletion
-
deleteQueue
public void deleteQueue()
Deletes all elements in the deletion queue.- Specified by:
deleteQueue
in interfaceExecEnv
-
getInputModelOf
public Model getInputModelOf(org.eclipse.emf.ecore.EObject object)
- Specified by:
getInputModelOf
in interfaceExecEnv
- Parameters:
object
- the object for which to look up the containing model- Returns:
- the input
Model
that containsobject
, ornull
if not found.
-
getInoutModelOf
public Model getInoutModelOf(org.eclipse.emf.ecore.EObject object)
- Specified by:
getInoutModelOf
in interfaceExecEnv
- Parameters:
object
- the object for which to look up the containing model- Returns:
- the in/out
Model
that containsobject
, ornull
if not found.
-
getOutputModelOf
public Model getOutputModelOf(org.eclipse.emf.ecore.EObject object)
- Specified by:
getOutputModelOf
in interfaceExecEnv
- Parameters:
object
- the object for which to look up the containing model- Returns:
- the output
Model
that containsobject
, ornull
if not found.
-
eGet
public java.lang.Object eGet(int featureID, boolean resolve, boolean coreType)
- Specified by:
eGet
in interfaceorg.eclipse.emf.ecore.InternalEObject
- Overrides:
eGet
in classorg.eclipse.emf.ecore.impl.BasicEObjectImpl
-
eSet
public void eSet(int featureID, java.lang.Object newValue)
- Specified by:
eSet
in interfaceorg.eclipse.emf.ecore.InternalEObject
- Overrides:
eSet
in classorg.eclipse.emf.ecore.impl.BasicEObjectImpl
-
eUnset
public void eUnset(int featureID)
- Specified by:
eUnset
in interfaceorg.eclipse.emf.ecore.InternalEObject
- Overrides:
eUnset
in classorg.eclipse.emf.ecore.impl.BasicEObjectImpl
-
eIsSet
public boolean eIsSet(int featureID)
- Specified by:
eIsSet
in interfaceorg.eclipse.emf.ecore.InternalEObject
- Overrides:
eIsSet
in classorg.eclipse.emf.ecore.impl.BasicEObjectImpl
-
toString
public java.lang.String toString()
- Overrides:
toString
in classorg.eclipse.emf.ecore.impl.BasicEObjectImpl
-
getJITCompiler
public CodeBlockJIT getJITCompiler()
Returns the JIT compiler instance for this execution environment.- Specified by:
getJITCompiler
in interfaceExecEnv
- Returns:
- the JIT compiler instance
-
resetJITCompiler
protected void resetJITCompiler()
Sets the JIT compiler instance for this execution environment tonull
.
-
isRuleStateCompiled
protected boolean isRuleStateCompiled()
Returns whether the internal state of the rules has been compiled.- Returns:
- the ruleStateCompiled
-
setRuleStateCompiled
protected void setRuleStateCompiled(boolean ruleStateCompiled)
Sets whether the internal state of the rules has been compiled.- Parameters:
ruleStateCompiled
- the ruleStateCompiled to set
-
-