org.sintef.mofscript.runtime
Class ExecutionManager

java.lang.Object
  extended by org.sintef.mofscript.runtime.ExecutionManager

public class ExecutionManager
extends java.lang.Object


Field Summary
protected  org.eclipse.emf.ecore.EcoreFactory _ecoreFactory
           
protected  org.eclipse.emf.ecore.EcorePackage _ecorePackage
           
protected  RuleExecutionStack _executionStack
           
protected  org.modelware.modelbus.adapter.frm.FileResourcesType _filUML2eModel
           
protected  MOFScriptModelFactory _mttModelFactory
           
protected  ExecutionEnvironment _rootEnv
           
protected  java.util.Hashtable _sourceMetaModels
           
protected  org.eclipse.emf.ecore.EObject _sourceModel
           
protected  org.eclipse.emf.ecore.EPackage _targetMetaModel
           
protected  org.eclipse.emf.ecore.EObject _targetModel
           
protected  TransformationProxy _transformationProxy
           
protected  boolean _useFileModel
           
protected  boolean _useTraceability
           
 
Constructor Summary
protected ExecutionManager()
           
 
Method Summary
protected  boolean checkRSAAvailability()
          Checks availability of IBM RSA
 void clearSourceMetaModels()
           
 void clearTransformationModel()
           
 org.eclipse.emf.ecore.EObject createFeatureFromName(java.lang.String featureName, org.eclipse.emf.ecore.EPackage metamodel)
           
 void executeTransformation()
          executes a transformation
 org.eclipse.emf.ecore.EStructuralFeature findFeatureForEcoreConcept(java.lang.String ecoreConcept, java.lang.String feature)
           
 org.eclipse.emf.ecore.EStructuralFeature findFeatureForSourceConcept(java.lang.String metamodelconcept, java.lang.String feature)
          Locates a feature for a given metamodel concept in the source metamodel
 org.eclipse.emf.ecore.EStructuralFeature findFeatureForSourceRootConcept(java.lang.String metamodelName, java.lang.String feature)
           
 org.eclipse.emf.ecore.EStructuralFeature findFeatureForTargetConcept(java.lang.String metamodelconcept, java.lang.String feature)
          Locates a feature for a given metamodel concept in the target metamodel
 org.eclipse.emf.ecore.EClass findSourceMetaModelConcept(java.lang.String concept)
           
 org.eclipse.emf.ecore.EClass findTargetMetaModelConcept(java.lang.String concept)
           
 java.util.List getAllClassifiersForPackage(org.eclipse.emf.ecore.EPackage pkg)
           
 java.util.List getAllClassifiersForSourceMetaModel()
           
static java.util.Set getAllSuperRuleNames(MOFScriptTransformation transformation)
           
static java.util.Set getAllSuperRules(MOFScriptTransformation transformation)
           
 org.eclipse.emf.ecore.EClassifier getClassifierForPackage(org.eclipse.emf.ecore.EPackage pkg, java.lang.String clazzifierName)
           
 org.eclipse.emf.ecore.EPackage getEcoreMetaModel()
           
static ExecutionManager getExecutionManager()
           
 RuleExecutionStack getExecutionStack()
           
static org.eclipse.emf.ecore.EStructuralFeature getFeatureForClass(org.eclipse.emf.ecore.EClass clazz, java.lang.String feature)
          Retrieves a named features for a class.
 org.eclipse.emf.ecore.EObject getFeatureForName(java.lang.String featureName)
          Retrieves a feature object from the source metamodel (or one of the meta models) Currently uses the sourceMetaModel
static java.util.List getFeaturesForClass(org.eclipse.emf.ecore.EClass clazz)
          Fetches all features (structural features) of a class, including inherited ones Also fetches features of un
 org.modelware.modelbus.adapter.frm.FileResourcesType getFileModel()
          The file model is only populated when the "useFileModel" property is set.
 java.util.logging.Logger getLog()
          Gets the value of log usage
 org.eclipse.emf.ecore.EClassifier getMetaModelReference(java.lang.String refName)
           
static java.util.List getMMTokens(org.eclipse.emf.ecore.EPackage metaModel)
          Returns a list of strings containing the names of the concepts defined in the metamodel given in the input parameter
 MOFScriptModelFactory getModelFactory()
           
static java.lang.String getObjectAttributeValue(org.eclipse.emf.ecore.EObject object, java.lang.String featureName)
          Returns the value of a given attribute for a specific object
static java.lang.String getObjectNameValue(org.eclipse.emf.ecore.EObject object)
          Returns the value of the 'name' attribute for a specific object
protected  java.util.Collection getObjectsByType(org.eclipse.emf.common.util.TreeIterator treeIt, org.eclipse.emf.ecore.EClass type)
           
 java.util.Vector getProducedResources()
           
 java.lang.Object getRealObject(java.lang.Object mightBeProxy)
          checks if an object is a proxy and resolves it
 org.eclipse.emf.ecore.resource.Resource getResource(org.eclipse.emf.common.util.URI uri)
           
 org.eclipse.emf.ecore.resource.ResourceSet getResourceSet()
           
 java.util.Map getRulesForConcept(java.lang.String concept)
           
 java.util.List getRulesForConcept2(java.lang.String concept)
           
 org.eclipse.emf.ecore.EPackage getSourceMetaModel()
           
 org.eclipse.emf.ecore.EPackage getSourceMetaModel(java.lang.String name)
           
 java.util.List getSourceMMTokens()
           
 org.eclipse.emf.ecore.EObject getSourceModel()
           
 org.eclipse.emf.ecore.EPackage getTargetMetaModel()
           
 java.util.List getTargetMMTokens()
           
 TransformationProxy getTransformationProxy()
           
 TransformationRule getTransformationRule2(java.lang.String name, java.lang.String possibleScope, java.lang.String ownerTransformation)
          Deprecated.  
 java.util.Collection getTransformationRules(java.lang.String name, java.lang.String possibleScope, java.lang.String ownerTransformation)
          Returns all rules with the same name
 MOFScriptSpecification getTransformationSpecification()
           
 boolean getUMLIsAvailable()
          Gets the property for UML2 availability
 boolean getUseTraceability()
           
protected  org.eclipse.emf.ecore.EObject loadRSAModel(java.io.File srcFile)
          RSA extension for loading RSA models
 void loadSourceMetaModel_111(java.io.File sourceFile)
          Loads the source meta model from a file into the set of models
 void loadSourceMetaModel(java.lang.String uri)
           
 void loadSourceModel(java.io.File sourceFile)
          Loads the source model from a file into the set of models needed to perform a transformation The source model needs to be in accordance with the source meta model
 void loadTransformationModel(java.io.File sourcefile)
          Loads a transformation model from a file
 org.eclipse.emf.ecore.EPackage lookupAndSetSourceMetaModel(java.lang.String mmName)
           
 java.util.Hashtable lookupMetaModels()
          Looks up metamodels
 org.eclipse.emf.ecore.EPackage lookupPackageRegistry_111(java.lang.String name)
          Looks up a package name from the package registry
 org.eclipse.emf.ecore.EPackage lookupResourceMetaModel(java.lang.String mmUri)
           
 org.eclipse.emf.ecore.EPackage lookupResourceMetaModelByName(java.lang.String name)
           
 void messageEvent(java.lang.String message)
           
protected  void registerAnonymousPackage(java.lang.Class toRegister)
          Dynamically registry a package, based on the class
protected  void registerExternalResources()
          Registers resources which might not be available, such as UML2
protected  void registerNotationPackages()
          RSA-specific variabilities
protected  void registerUML2Resources()
          UML 2-specific variability
protected  boolean ruleIsForConcept(TransformationRule r, java.lang.String concept)
           
 void saveTargetModel(java.io.File targetFile)
          Saves the target model to the file given as parameter The file is saved in XMI for the target meta model (or rather the chosen root element of that meta model)
 void setFileMetaModelRepository(java.lang.String directory)
           
 void setRootDirectory(java.lang.String rootDir)
          Sets the root directory for output generation
 void setSourceModel(org.eclipse.emf.ecore.EObject model)
           
protected  void setSourceModelResource(org.eclipse.emf.ecore.resource.Resource res)
          Fetches the model object from a resource and sets the sourceModel
 void setTransformationModel(MOFScriptTransformation transformation)
           
 void setTransformationProxy(TransformationProxy trProxy)
           
 void setTransformationSpecification(MOFScriptSpecification transformationSpec)
           
 void setUMLIsAvailable(boolean umlIsAvailable)
          Sets the property for UML2 availability
 void setUseFileModel(boolean useFileModel)
           
 void setUseLog(boolean useLog)
          Turns on/off the usage of logging in MOFScript
 void setUseTraceability(boolean useIt)
          Turns traceability functionality on / off
protected  void updatePackageRegistry()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_ecorePackage

protected org.eclipse.emf.ecore.EcorePackage _ecorePackage

_ecoreFactory

protected org.eclipse.emf.ecore.EcoreFactory _ecoreFactory

_sourceMetaModels

protected java.util.Hashtable _sourceMetaModels

_targetMetaModel

protected org.eclipse.emf.ecore.EPackage _targetMetaModel

_sourceModel

protected org.eclipse.emf.ecore.EObject _sourceModel

_targetModel

protected org.eclipse.emf.ecore.EObject _targetModel

_useTraceability

protected boolean _useTraceability

_rootEnv

protected ExecutionEnvironment _rootEnv

_executionStack

protected RuleExecutionStack _executionStack

_mttModelFactory

protected MOFScriptModelFactory _mttModelFactory

_transformationProxy

protected TransformationProxy _transformationProxy

_useFileModel

protected boolean _useFileModel

_filUML2eModel

protected org.modelware.modelbus.adapter.frm.FileResourcesType _filUML2eModel
Constructor Detail

ExecutionManager

protected ExecutionManager()
Method Detail

getExecutionManager

public static ExecutionManager getExecutionManager()

updatePackageRegistry

protected void updatePackageRegistry()

lookupMetaModels

public java.util.Hashtable lookupMetaModels()
Looks up metamodels

Returns:

setFileMetaModelRepository

public void setFileMetaModelRepository(java.lang.String directory)

setUseTraceability

public void setUseTraceability(boolean useIt)
Turns traceability functionality on / off

Parameters:
useIt -

getUseTraceability

public boolean getUseTraceability()
Returns:
The value of traceability management (is it on or off)

setUMLIsAvailable

public void setUMLIsAvailable(boolean umlIsAvailable)
Sets the property for UML2 availability

Parameters:
umlIsAvailable -

getUMLIsAvailable

public boolean getUMLIsAvailable()
Gets the property for UML2 availability

Returns:

setUseLog

public void setUseLog(boolean useLog)
Turns on/off the usage of logging in MOFScript

Parameters:
useLog -

getLog

public java.util.logging.Logger getLog()
Gets the value of log usage

Returns:

getResource

public org.eclipse.emf.ecore.resource.Resource getResource(org.eclipse.emf.common.util.URI uri)

getTransformationRule2

public TransformationRule getTransformationRule2(java.lang.String name,
                                                 java.lang.String possibleScope,
                                                 java.lang.String ownerTransformation)
Deprecated. 

Gets the first rule of a specific name

Parameters:
name -
possibleScope -
ownerTransformation -
Returns:

getTransformationRules

public java.util.Collection getTransformationRules(java.lang.String name,
                                                   java.lang.String possibleScope,
                                                   java.lang.String ownerTransformation)
Returns all rules with the same name

Parameters:
name -
possibleScope -
ownerTransformation -
Returns:

getEcoreMetaModel

public org.eclipse.emf.ecore.EPackage getEcoreMetaModel()
Returns:

clearTransformationModel

public void clearTransformationModel()

setTransformationProxy

public void setTransformationProxy(TransformationProxy trProxy)
Parameters:
trProxy -

getTransformationProxy

public TransformationProxy getTransformationProxy()
Returns:
the current transformation model

setTransformationModel

public void setTransformationModel(MOFScriptTransformation transformation)
Parameters:
transformation -

setTransformationSpecification

public void setTransformationSpecification(MOFScriptSpecification transformationSpec)
Parameters:
transformationSpec -

getTransformationSpecification

public MOFScriptSpecification getTransformationSpecification()
Returns:

setUseFileModel

public void setUseFileModel(boolean useFileModel)
Parameters:
useFileModel -

setRootDirectory

public void setRootDirectory(java.lang.String rootDir)
Sets the root directory for output generation

Parameters:
rootDir -

getModelFactory

public MOFScriptModelFactory getModelFactory()

getResourceSet

public org.eclipse.emf.ecore.resource.ResourceSet getResourceSet()

getExecutionStack

public RuleExecutionStack getExecutionStack()

loadTransformationModel

public void loadTransformationModel(java.io.File sourcefile)
Loads a transformation model from a file


loadSourceMetaModel_111

public void loadSourceMetaModel_111(java.io.File sourceFile)
Loads the source meta model from a file into the set of models

Parameters:
sourceFile - the file to load the metamodel from

loadSourceMetaModel

public void loadSourceMetaModel(java.lang.String uri)
Parameters:
uri -

lookupPackageRegistry_111

public org.eclipse.emf.ecore.EPackage lookupPackageRegistry_111(java.lang.String name)
Looks up a package name from the package registry

Parameters:
name -
Returns:

clearSourceMetaModels

public void clearSourceMetaModels()

loadSourceModel

public void loadSourceModel(java.io.File sourceFile)
Loads the source model from a file into the set of models needed to perform a transformation The source model needs to be in accordance with the source meta model

Parameters:
sourceFile - the file to load the metamodel from

lookupResourceMetaModel

public org.eclipse.emf.ecore.EPackage lookupResourceMetaModel(java.lang.String mmUri)
Parameters:
mmUri -
Returns:

lookupResourceMetaModelByName

public org.eclipse.emf.ecore.EPackage lookupResourceMetaModelByName(java.lang.String name)
Parameters:
name -
Returns:

lookupAndSetSourceMetaModel

public org.eclipse.emf.ecore.EPackage lookupAndSetSourceMetaModel(java.lang.String mmName)

setSourceModelResource

protected void setSourceModelResource(org.eclipse.emf.ecore.resource.Resource res)
Fetches the model object from a resource and sets the sourceModel

Parameters:
res -

setSourceModel

public void setSourceModel(org.eclipse.emf.ecore.EObject model)

saveTargetModel

public void saveTargetModel(java.io.File targetFile)
Saves the target model to the file given as parameter The file is saved in XMI for the target meta model (or rather the chosen root element of that meta model)

Parameters:
targetFile - the file to store the model to

getSourceMetaModel

public org.eclipse.emf.ecore.EPackage getSourceMetaModel()

getSourceMetaModel

public org.eclipse.emf.ecore.EPackage getSourceMetaModel(java.lang.String name)

getTargetMetaModel

public org.eclipse.emf.ecore.EPackage getTargetMetaModel()

getSourceModel

public org.eclipse.emf.ecore.EObject getSourceModel()

executeTransformation

public void executeTransformation()
                           throws MofScriptExecutionException
executes a transformation

Throws:
MofScriptExecutionException

getFileModel

public org.modelware.modelbus.adapter.frm.FileResourcesType getFileModel()
The file model is only populated when the "useFileModel" property is set.

Returns:
a file model representation of the files generated

getProducedResources

public java.util.Vector getProducedResources()
Returns:
A (String) list of produced resources (files) (their names)

getObjectsByType

protected java.util.Collection getObjectsByType(org.eclipse.emf.common.util.TreeIterator treeIt,
                                                org.eclipse.emf.ecore.EClass type)

getObjectAttributeValue

public static java.lang.String getObjectAttributeValue(org.eclipse.emf.ecore.EObject object,
                                                       java.lang.String featureName)
Returns the value of a given attribute for a specific object

Parameters:
object -
featureName -
Returns:

getObjectNameValue

public static java.lang.String getObjectNameValue(org.eclipse.emf.ecore.EObject object)
Returns the value of the 'name' attribute for a specific object

Parameters:
object - the object to find the name attribute value for
Returns:
the value of the 'name' attribute

getFeatureForName

public org.eclipse.emf.ecore.EObject getFeatureForName(java.lang.String featureName)
Retrieves a feature object from the source metamodel (or one of the meta models) Currently uses the sourceMetaModel

Parameters:
featureName -
Returns:

createFeatureFromName

public org.eclipse.emf.ecore.EObject createFeatureFromName(java.lang.String featureName,
                                                           org.eclipse.emf.ecore.EPackage metamodel)

getMMTokens

public static java.util.List getMMTokens(org.eclipse.emf.ecore.EPackage metaModel)
Returns a list of strings containing the names of the concepts defined in the metamodel given in the input parameter

Parameters:
metaModel - the metamodel to find the tokens for
Returns:
a list of tokens in string format

getSourceMMTokens

public java.util.List getSourceMMTokens()
Returns:
a list of tokens for the source metamodel

getTargetMMTokens

public java.util.List getTargetMMTokens()
Returns:
a list of tokens for the target metamodel

findSourceMetaModelConcept

public org.eclipse.emf.ecore.EClass findSourceMetaModelConcept(java.lang.String concept)
Parameters:
concept - a string containing the name og the concept to receive
Returns:
an EClass representation of the source metamodel concept defined in the parameter

findTargetMetaModelConcept

public org.eclipse.emf.ecore.EClass findTargetMetaModelConcept(java.lang.String concept)
Parameters:
concept - a string containing the name og the concept to receive
Returns:
an EClass representation of the target metamodel concept defined in the parameter

findFeatureForSourceConcept

public org.eclipse.emf.ecore.EStructuralFeature findFeatureForSourceConcept(java.lang.String metamodelconcept,
                                                                            java.lang.String feature)
Locates a feature for a given metamodel concept in the source metamodel


findFeatureForEcoreConcept

public org.eclipse.emf.ecore.EStructuralFeature findFeatureForEcoreConcept(java.lang.String ecoreConcept,
                                                                           java.lang.String feature)

findFeatureForSourceRootConcept

public org.eclipse.emf.ecore.EStructuralFeature findFeatureForSourceRootConcept(java.lang.String metamodelName,
                                                                                java.lang.String feature)

findFeatureForTargetConcept

public org.eclipse.emf.ecore.EStructuralFeature findFeatureForTargetConcept(java.lang.String metamodelconcept,
                                                                            java.lang.String feature)
Locates a feature for a given metamodel concept in the target metamodel


getRulesForConcept

public java.util.Map getRulesForConcept(java.lang.String concept)

getRulesForConcept2

public java.util.List getRulesForConcept2(java.lang.String concept)

ruleIsForConcept

protected boolean ruleIsForConcept(TransformationRule r,
                                   java.lang.String concept)

getMetaModelReference

public org.eclipse.emf.ecore.EClassifier getMetaModelReference(java.lang.String refName)
Parameters:
refName -
Returns:

getFeaturesForClass

public static java.util.List getFeaturesForClass(org.eclipse.emf.ecore.EClass clazz)
Fetches all features (structural features) of a class, including inherited ones Also fetches features of un


getFeatureForClass

public static org.eclipse.emf.ecore.EStructuralFeature getFeatureForClass(org.eclipse.emf.ecore.EClass clazz,
                                                                          java.lang.String feature)
Retrieves a named features for a class. Also checks the upper supertype, in case this is a proxy

Parameters:
clazz -
feature -
Returns:

getAllClassifiersForSourceMetaModel

public java.util.List getAllClassifiersForSourceMetaModel()
Returns:

getAllClassifiersForPackage

public java.util.List getAllClassifiersForPackage(org.eclipse.emf.ecore.EPackage pkg)
Parameters:
pkg -
Returns:

getClassifierForPackage

public org.eclipse.emf.ecore.EClassifier getClassifierForPackage(org.eclipse.emf.ecore.EPackage pkg,
                                                                 java.lang.String clazzifierName)
Parameters:
pkg -
clazzifierName -
Returns:

getRealObject

public java.lang.Object getRealObject(java.lang.Object mightBeProxy)
checks if an object is a proxy and resolves it

Parameters:
mightBeProxy -
Returns:

getAllSuperRules

public static java.util.Set getAllSuperRules(MOFScriptTransformation transformation)
Parameters:
transformation -
Returns:
the set of all rules for supertypes of a transformation

getAllSuperRuleNames

public static java.util.Set getAllSuperRuleNames(MOFScriptTransformation transformation)
Parameters:
transformation -
Returns:

registerExternalResources

protected void registerExternalResources()
Registers resources which might not be available, such as UML2


registerUML2Resources

protected void registerUML2Resources()
UML 2-specific variability


registerNotationPackages

protected void registerNotationPackages()
RSA-specific variabilities


registerAnonymousPackage

protected void registerAnonymousPackage(java.lang.Class toRegister)
Dynamically registry a package, based on the class

Parameters:
toRegister -

checkRSAAvailability

protected boolean checkRSAAvailability()
Checks availability of IBM RSA

Returns:

loadRSAModel

protected org.eclipse.emf.ecore.EObject loadRSAModel(java.io.File srcFile)
RSA extension for loading RSA models

Parameters:
modelRef -
Returns:

messageEvent

public void messageEvent(java.lang.String message)