org.eclipse.mofscript.runtime
Class ExecutionManager

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

public class ExecutionManager
extends java.lang.Object

Class responsible for managing the execution of a transformation

Author:
jol

Field Summary
protected  boolean _coarseTramde
           
protected  org.eclipse.emf.ecore.EcoreFactory _ecoreFactory
           
protected  org.eclipse.emf.ecore.EcorePackage _ecorePackage
           
protected  RuleExecutionStack _executionStack
           
protected  FileResourcesType _filUML2eModel
           
protected  MOFScriptModelFactory _mttModelFactory
           
protected  ExecutionEnvironment _rootEnv
           
protected  java.util.Hashtable<java.lang.String,java.lang.String> _sourceMetaModelNames
           
protected  java.util.Hashtable<java.lang.String,org.eclipse.emf.ecore.EPackage> _sourceMetaModels
           
protected  java.util.Hashtable<java.lang.String,org.eclipse.emf.ecore.EObject> _sourceModels
           
protected  java.util.Hashtable<java.lang.String,java.lang.String> _targetMetaModelNames
           
protected  java.util.Hashtable<java.lang.String,org.eclipse.emf.ecore.EPackage> _targetMetaModels
           
protected  org.eclipse.emf.ecore.EObject _targetModel
           
protected  TransformationProxy _transformationProxy
           
protected  boolean _useFileModel
           
protected  boolean _useTraceability
           
protected  boolean _useTramde
           
 
Constructor Summary
protected ExecutionManager()
          Default constructor (protected), which is not used externally.
 
Method Summary
static void addDebugListener(DebugListener dl)
           
 void addOutModelTypeMap(java.lang.String outParam, java.lang.String metaModelType)
           
 void addSourceModel(org.eclipse.emf.ecore.EObject model)
          Adds a source metamodel
protected  void addSourceModelResource(java.lang.String metamodelRef, org.eclipse.emf.ecore.resource.Resource res)
          Fetches the model object from a resource and sets the sourceModel
protected  boolean checkRSAAvailability()
          Checks availability of IBM RSA
 void checkTramdeAvailability()
          Checks if TRAMDE is installed in the platform
 void clearModelTypeMap()
           
 void clearSourceMetaModels()
          Clears the source metamodel hash
 void clearTransformationModel()
          Clears the transformation proxy
 java.lang.Class<?> createFeatureFromName(java.lang.String featureName, org.eclipse.emf.ecore.EPackage metamodel)
          Creates a classifier from a metamodel based on a name This is not really used - was for creating metamodel instances in a transformation.
 void executeTransformation()
          Executes a transformation
 org.eclipse.emf.ecore.EStructuralFeature findFeatureForEcoreConcept(java.lang.String ecoreConcept, java.lang.String feature)
          Looks for a feature from an ecore concept
 org.eclipse.emf.ecore.EStructuralFeature findFeatureForSourceConcept(java.lang.String metaModel, 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_1002(java.lang.String metamodelName, java.lang.String feature)
           
 org.eclipse.emf.ecore.EStructuralFeature findFeatureForTargetConcept(java.lang.String metaModel, java.lang.String metamodelconcept, java.lang.String feature)
          Locates a feature for a given metamodel concept in the target metamodel
 org.eclipse.emf.ecore.EClassifier findMetaModelConcept(java.lang.String metaModelName, java.lang.String concept)
          Looks for either source or target metamodel concepts
 org.eclipse.emf.ecore.EClassifier findSourceMetaModelConcept(java.lang.String metaModelName, java.lang.String concept)
           
 org.eclipse.emf.ecore.EClassifier findTargetMetaModelConcept(java.lang.String metaModelName, java.lang.String concept)
           
 java.util.List getAllClassifiersForMetaModel(java.lang.String metaModel)
           
 java.util.List getAllClassifiersForPackage(org.eclipse.emf.ecore.EPackage pkg)
           
 java.util.List getAllClassifiersForSourceMetaModel(java.lang.String metaModel)
          Returns a list of all classifiers for a given meta model
 java.util.List getAllRulesForConcept(java.lang.String concept)
          Looks for all rules that applies to a certain concept
static java.util.Set getAllSuperRuleNames(MOFScriptTransformation transformation)
           
static java.util.Set getAllSuperRules(MOFScriptTransformation transformation)
           
 java.lang.String getBlockCommentTag()
           
 java.lang.String getCharset()
           
 org.eclipse.emf.ecore.EClassifier getClassifierForPackage(org.eclipse.emf.ecore.EPackage pkg, java.lang.String clazzifierName)
           
static java.util.List<DebugListener> getDebugListeners()
           
 org.eclipse.emf.ecore.EPackage getDefaultMetaModel()
          Returns the "default" metamodel, which is always the first one
 org.eclipse.emf.ecore.EPackage getEcoreMetaModel()
           
static ExecutionManager getExecutionManager()
          Obtains (and creates) the singelton execution manager
 RuleExecutionStack getExecutionStack()
           
static org.eclipse.emf.ecore.EStructuralFeature getFeatureForClass(org.eclipse.emf.ecore.EClassifier clazzifier, java.lang.String feature)
          Retrieves a named features for a class.
 java.lang.Class<?> 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
 FileResourcesType getFileModel()
          The file model is only populated when the "useFileModel" property is set.
 ITraceEstablisher getITraceE()
           
 org.eclipse.emf.ecore.EPackage getMetaModel(java.lang.String name)
           
 java.util.Vector<org.eclipse.emf.ecore.EObject> getMetaModelConcept(java.lang.String concept)
          Looks at any metamodel for a class with that name
 org.eclipse.emf.ecore.EClassifier getMetaModelReference(java.lang.String refName)
          Looks for a classifier from a metamodel
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()
           
 MOFScriptTransformation getMofScript2TextTransformation()
          Returns the model representation of the MOFScript to Text transformation
 MOFScriptTransformation getMofScriptAspectTransformation()
           
protected  MOFScriptTransformation getMofScriptTransformation(java.lang.String fileUri)
          Returns the model representation of the MOFScript to Text transformation
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.EClassifier type)
          Looks for objects of a particular type within a tree iterator and returns all objects of that type
 java.util.Collection<org.eclipse.emf.ecore.EObject> getOutputModels()
           
 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)
          Returns a resource based on a URI
 org.eclipse.emf.ecore.resource.ResourceSet getResourceSet()
           
 java.lang.String getRootDirectory()
           
protected  java.util.Map getRulesForConcept(java.lang.String concept)
          Returns the rules for a specific concept using the transformation proxy
 org.eclipse.emf.ecore.EPackage getSourceMetaModel(java.lang.String name)
          Returns a named metamodel
 java.lang.String getSourceMetaModelName(int index)
          Gets the name of the source metamodels based on their index
 java.util.List getSourceMMTokens()
           
 org.eclipse.emf.ecore.EObject getSourceModel(java.lang.String metaModelRef)
           
 org.eclipse.emf.ecore.EPackage getTargetMetaModel(java.lang.String name)
           
static boolean getTramdeAvailable()
          Returns the value true if TRAMDE is installed in the platform
 java.lang.String getTransformationInputUri()
           
 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 getUseCoarseTramde()
           
 boolean getUseTraceability()
           
 boolean getUseTramde()
           
protected  void initUMLSupport()
          Tests if UML2 classes are available by dynamic instantitation If they are, the editor (and runtime) can provide extended support for UML2
 boolean isTramdeActive()
          This is the preferences value of Generate Tramde trace links
protected  org.eclipse.emf.ecore.EObject loadRSAModel(java.io.File srcFile)
          RSA extension for loading RSA models
 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
protected  void lookupAndAddMetaModel(MOFScriptParameter p)
           
 org.eclipse.emf.ecore.EPackage lookupAndAddSourceMetaModel(java.lang.String mmName, java.lang.String mmUri)
          Looks up a given metamodel and adds it to the metamodel and name caches
 void lookupAndAddSourceMetaModelsFromParameterList(java.util.List paramList)
          Clears source (and target) metamodel cache and lookup the models.
 org.eclipse.emf.ecore.EPackage lookupAndAddTargetMetaModel(java.lang.String mmName, java.lang.String mmUri, java.lang.String typePrefix)
          Looks up a given metamodel and adds it to the metamodel and name caches
 java.util.Hashtable<java.lang.String,java.lang.String> lookupMetaModels()
          Looks up metamodels Only loads metamodel from the MM repository
 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)
          Looks for a metamodel based on it's URI
 org.eclipse.emf.ecore.EPackage lookupResourceMetaModelByName(java.lang.String name)
          Looks up a metamodel based on a name
 void messageEvent(java.lang.String message)
          Prints message to console
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
static void removeDebugListener(DebugListener dl)
           
protected  boolean ruleIsForConcept(TransformationRule r, java.lang.String concept)
          Checks if a particular rule applies to a partcular concept (metamodel type)
 void setBlockCommentTag(java.lang.String blockCommentTag)
           
 void setCharset(java.lang.String cs)
           
 void setFileMetaModelRepository(java.lang.String directory)
          Sets the metamodel repository location, and updates the cached registry
 void setITraceE(ITraceEstablisher iTraceE)
           
 void setRootDirectory(java.lang.String rootDir)
          Sets the root directory for output generation
 void setTraceabilityGenDir(java.lang.String traceGenDir)
           
 void setTransformationInputUri(java.lang.String trInputUri)
           
 void setTransformationModel(MOFScriptTransformation transformation)
           
 void setTransformationProxy(TransformationProxy trProxy)
          Sets the transformation proxy
 void setTransformationSpecification(MOFScriptSpecification transformationSpec)
           
 void setUMLIsAvailable(boolean umlIsAvailable)
          Sets the property for UML2 availability
 void setUseCoarseTramde(boolean useIt)
           
 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
 void setUseTramde(boolean useIt)
           
protected  void updatePackageRegistry()
          Updates the registered packages (based on the metamodel repository location)
 
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<java.lang.String,org.eclipse.emf.ecore.EPackage> _sourceMetaModels

_sourceMetaModelNames

protected java.util.Hashtable<java.lang.String,java.lang.String> _sourceMetaModelNames

_targetMetaModels

protected java.util.Hashtable<java.lang.String,org.eclipse.emf.ecore.EPackage> _targetMetaModels

_targetMetaModelNames

protected java.util.Hashtable<java.lang.String,java.lang.String> _targetMetaModelNames

_sourceModels

protected java.util.Hashtable<java.lang.String,org.eclipse.emf.ecore.EObject> _sourceModels

_targetModel

protected org.eclipse.emf.ecore.EObject _targetModel

_useTraceability

protected boolean _useTraceability

_useTramde

protected boolean _useTramde

_coarseTramde

protected boolean _coarseTramde

_rootEnv

protected ExecutionEnvironment _rootEnv

_executionStack

protected RuleExecutionStack _executionStack

_mttModelFactory

protected MOFScriptModelFactory _mttModelFactory

_transformationProxy

protected TransformationProxy _transformationProxy

_useFileModel

protected boolean _useFileModel

_filUML2eModel

protected FileResourcesType _filUML2eModel
Constructor Detail

ExecutionManager

protected ExecutionManager()
Default constructor (protected), which is not used externally. The static factory method ExecutionManager.getExecutionManager() should be used.

Method Detail

getCharset

public java.lang.String getCharset()
Returns:

setCharset

public void setCharset(java.lang.String cs)
Parameters:
charset -

setTransformationInputUri

public void setTransformationInputUri(java.lang.String trInputUri)
Parameters:
trInputUri -

getTransformationInputUri

public java.lang.String getTransformationInputUri()

getITraceE

public ITraceEstablisher getITraceE()
Returns:

setITraceE

public void setITraceE(ITraceEstablisher iTraceE)
Parameters:
iTraceE -

isTramdeActive

public boolean isTramdeActive()
This is the preferences value of Generate Tramde trace links

Returns:

checkTramdeAvailability

public void checkTramdeAvailability()
Checks if TRAMDE is installed in the platform


getTramdeAvailable

public static boolean getTramdeAvailable()
Returns the value true if TRAMDE is installed in the platform

Returns:

getExecutionManager

public static ExecutionManager getExecutionManager()
Obtains (and creates) the singelton execution manager

Returns:

updatePackageRegistry

protected void updatePackageRegistry()
Updates the registered packages (based on the metamodel repository location)


lookupMetaModels

public java.util.Hashtable<java.lang.String,java.lang.String> lookupMetaModels()
Looks up metamodels Only loads metamodel from the MM repository

Returns:
A hashtable containing pairs of uris and names of metamodels

setFileMetaModelRepository

public void setFileMetaModelRepository(java.lang.String directory)
Sets the metamodel repository location, and updates the cached registry

Parameters:
directory -

setUseTraceability

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

Parameters:
useIt -

setTraceabilityGenDir

public void setTraceabilityGenDir(java.lang.String traceGenDir)

getUseTraceability

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

getUseTramde

public boolean getUseTramde()

setUseTramde

public void setUseTramde(boolean useIt)

getUseCoarseTramde

public boolean getUseCoarseTramde()

setUseCoarseTramde

public void setUseCoarseTramde(boolean useIt)

addDebugListener

public static void addDebugListener(DebugListener dl)
Parameters:
dl -

removeDebugListener

public static void removeDebugListener(DebugListener dl)
Parameters:
dl -

getDebugListeners

public static java.util.List<DebugListener> getDebugListeners()
Returns:

setBlockCommentTag

public void setBlockCommentTag(java.lang.String blockCommentTag)
Parameters:
blockCommentTag - Comment tag used infront of block start and end I.e. Java "//"

getBlockCommentTag

public java.lang.String getBlockCommentTag()

setUMLIsAvailable

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

Parameters:
umlIsAvailable -

initUMLSupport

protected void initUMLSupport()
Tests if UML2 classes are available by dynamic instantitation If they are, the editor (and runtime) can provide extended support for UML2


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 -

getResource

public org.eclipse.emf.ecore.resource.Resource getResource(org.eclipse.emf.common.util.URI uri)
Returns a resource based on a URI

Parameters:
uri -
Returns:

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:
The ecore package

clearTransformationModel

public void clearTransformationModel()
Clears the transformation proxy


setTransformationProxy

public void setTransformationProxy(TransformationProxy trProxy)
Sets the transformation proxy

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:
The transformation specification

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 -

getRootDirectory

public java.lang.String getRootDirectory()
Returns:
The root directory

getModelFactory

public MOFScriptModelFactory getModelFactory()
Returns:
The mofscript model factory

getResourceSet

public org.eclipse.emf.ecore.resource.ResourceSet getResourceSet()
Returns:
the resource set

getExecutionStack

public RuleExecutionStack getExecutionStack()
Returns:
The execution stack

loadTransformationModel

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


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()
Clears the source metamodel hash


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)
Looks for a metamodel based on it's URI

Parameters:
mmUri -
Returns:

lookupResourceMetaModelByName

public org.eclipse.emf.ecore.EPackage lookupResourceMetaModelByName(java.lang.String name)
Looks up a metamodel based on a name

Parameters:
name -
Returns:

lookupAndAddSourceMetaModel

public org.eclipse.emf.ecore.EPackage lookupAndAddSourceMetaModel(java.lang.String mmName,
                                                                  java.lang.String mmUri)
Looks up a given metamodel and adds it to the metamodel and name caches

Parameters:
mmName -
mmUri -
Returns:

lookupAndAddTargetMetaModel

public org.eclipse.emf.ecore.EPackage lookupAndAddTargetMetaModel(java.lang.String mmName,
                                                                  java.lang.String mmUri,
                                                                  java.lang.String typePrefix)
Looks up a given metamodel and adds it to the metamodel and name caches

Parameters:
mmName -
mmUri -
Returns:

lookupAndAddMetaModel

protected void lookupAndAddMetaModel(MOFScriptParameter p)
Parameters:
p -

lookupAndAddSourceMetaModelsFromParameterList

public void lookupAndAddSourceMetaModelsFromParameterList(java.util.List paramList)
Clears source (and target) metamodel cache and lookup the models.


addSourceModelResource

protected void addSourceModelResource(java.lang.String metamodelRef,
                                      org.eclipse.emf.ecore.resource.Resource res)
Fetches the model object from a resource and sets the sourceModel

Parameters:
metamodelRef - The refrence name of the metamodel
res - The resource that is added

addSourceModel

public void addSourceModel(org.eclipse.emf.ecore.EObject model)
Adds a source metamodel

Parameters:
model -

getDefaultMetaModel

public org.eclipse.emf.ecore.EPackage getDefaultMetaModel()
Returns the "default" metamodel, which is always the first one

Returns:

getMetaModel

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

getSourceMetaModel

public org.eclipse.emf.ecore.EPackage getSourceMetaModel(java.lang.String name)
Returns a named metamodel

Parameters:
name -
Returns:

getTargetMetaModel

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

getSourceMetaModelName

public java.lang.String getSourceMetaModelName(int index)
Gets the name of the source metamodels based on their index


getSourceModel

public org.eclipse.emf.ecore.EObject getSourceModel(java.lang.String metaModelRef)
Parameters:
metaModelRef - The reference to the owner metamodel
Returns:
the source model object

executeTransformation

public void executeTransformation()
                           throws MofScriptExecutionException
Executes a transformation

Throws:
MofScriptExecutionException

getFileModel

public 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.EClassifier type)
Looks for objects of a particular type within a tree iterator and returns all objects of that type

Parameters:
treeIt - The tree iterator
type - The type
Returns:

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 java.lang.Class<?> 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 java.lang.Class<?> createFeatureFromName(java.lang.String featureName,
                                                org.eclipse.emf.ecore.EPackage metamodel)
Creates a classifier from a metamodel based on a name This is not really used - was for creating metamodel instances in a transformation.

Parameters:
featureName -
metamodel -
Returns:

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

findMetaModelConcept

public org.eclipse.emf.ecore.EClassifier findMetaModelConcept(java.lang.String metaModelName,
                                                              java.lang.String concept)
Looks for either source or target metamodel concepts

Parameters:
metaModelName -
concept -
Returns:

findSourceMetaModelConcept

public org.eclipse.emf.ecore.EClassifier findSourceMetaModelConcept(java.lang.String metaModelName,
                                                                    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.EClassifier findTargetMetaModelConcept(java.lang.String metaModelName,
                                                                    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

getMetaModelConcept

public java.util.Vector<org.eclipse.emf.ecore.EObject> getMetaModelConcept(java.lang.String concept)
Looks at any metamodel for a class with that name

Parameters:
concept -
Returns:

findFeatureForSourceConcept

public org.eclipse.emf.ecore.EStructuralFeature findFeatureForSourceConcept(java.lang.String metaModel,
                                                                            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)
Looks for a feature from an ecore concept

Parameters:
ecoreConcept -
feature -
Returns:

findFeatureForSourceRootConcept_1002

public org.eclipse.emf.ecore.EStructuralFeature findFeatureForSourceRootConcept_1002(java.lang.String metamodelName,
                                                                                     java.lang.String feature)
Parameters:
metamodelName -
feature -
Returns:

findFeatureForTargetConcept

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


getRulesForConcept

protected java.util.Map getRulesForConcept(java.lang.String concept)
Returns the rules for a specific concept using the transformation proxy

Parameters:
concept -
Returns:

getAllRulesForConcept

public java.util.List getAllRulesForConcept(java.lang.String concept)
Looks for all rules that applies to a certain concept

Parameters:
concept - The concept
Returns:

ruleIsForConcept

protected boolean ruleIsForConcept(TransformationRule r,
                                   java.lang.String concept)
Checks if a particular rule applies to a partcular concept (metamodel type)

Parameters:
r -
concept -
Returns:

getMetaModelReference

public org.eclipse.emf.ecore.EClassifier getMetaModelReference(java.lang.String refName)
Looks for a classifier from a metamodel

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.EClassifier clazzifier,
                                                                          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(java.lang.String metaModel)
Returns a list of all classifiers for a given meta model

Returns:

getAllClassifiersForMetaModel

public java.util.List getAllClassifiersForMetaModel(java.lang.String metaModel)
Parameters:
metaModel -
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:
the name of all rules for supertypes of a transformation

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:
true if RSA is available

loadRSAModel

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

Parameters:
modelRef -
Returns:

getMofScriptTransformation

protected MOFScriptTransformation getMofScriptTransformation(java.lang.String fileUri)
Returns the model representation of the MOFScript to Text transformation

Returns:

getMofScript2TextTransformation

public MOFScriptTransformation getMofScript2TextTransformation()
Returns the model representation of the MOFScript to Text transformation

Returns:

getMofScriptAspectTransformation

public MOFScriptTransformation getMofScriptAspectTransformation()
Returns:

messageEvent

public void messageEvent(java.lang.String message)
Prints message to console

Parameters:
message -

addOutModelTypeMap

public void addOutModelTypeMap(java.lang.String outParam,
                               java.lang.String metaModelType)

clearModelTypeMap

public void clearModelTypeMap()

getOutputModels

public java.util.Collection<org.eclipse.emf.ecore.EObject> getOutputModels()
Returns:
The models produced by the latest transformation