org.eclipse.mofscript.runtime
Class ExecutionEnvironment

java.lang.Object
  extended by org.eclipse.mofscript.runtime.ExecutionEnvironment
Direct Known Subclasses:
TraceabilityEnvironment

public class ExecutionEnvironment
extends java.lang.Object

Handels the 'memory' during execution. Stores variables, handles file streams etc. Part of the RuleExecutionStack

Author:
Jon Oldevik

Constructor Summary
ExecutionEnvironment()
          Default constructor
 
Method Summary
 void addInputObject(java.lang.String name, java.lang.Object obj)
          Adds an input object
 void addLocalVariablesZZZ(java.util.List<VariableDeclaration> variables, RuleExecutor currentRuleExecutor)
          Deprecated.  
 void addModelVariables(java.util.List<VariableDeclaration> variables)
           
 void addVariable(Variable var)
          adds a variable
 void addVariables(java.util.List<Variable> variables)
          Adds a list of variables (includes checking for exsistence)
 java.lang.Object assignVariableValue(java.lang.String varName, java.lang.Object value, AssignmentOperator operator, Expression assignedExpression)
          Assignes a value to a variable
 void clean()
          Cleans current streams, streams and calls cleanLocal
static void cleanResources()
          Clears the resources
 void clearInputObject(java.lang.String name)
          Clears an object with a given name
 void clearReferenceCache()
          Clears all cached refrences
static void contDebug()
           
 void endUnprotectedBlock()
           
 Variable findVariable(java.lang.String varName)
          Searches for a given variable name
static java.lang.Object getAssignValue(java.lang.String type, java.lang.Object input, java.lang.Object assignValue, AssignmentOperator operator)
          Returns the assign value
 java.lang.Object getCachedReference(java.lang.String refName)
          Retrieves an already chached refrence as an object
static boolean getContDebug()
           
 java.io.PrintStream getCurrentPrintStream()
           
 java.io.OutputStream getCurrentStream()
           
static boolean getDebug()
           
 FileResourcesType getFileModel()
          Iterats the generated results and populates a EMF File Model (the frm model)
static java.lang.String getIndent()
          Returns the indent string
 java.lang.Object getInputObject(java.lang.String name)
          Gets an input object
 int getIteratorCount()
          The counter for an iterator index in a forEach The counter value is relative to the filter applied
 int getIteratorPosition()
          The "position" of an iterator index in a forEach iterator statement, relative to the full contents of the source of the iterator - i.e. ignoring any filter on the iterator
 int getLineNumber()
          Traceability testing
 java.io.OutputStream getOutputStream(java.lang.String uri)
          Gets the output stream from the environment, if null returns the parent environment's output stream
 ExecutionEnvironment getParentEnvironment()
          Gets the execution environment's parent environment
static java.util.Vector<java.lang.String> getResources()
           
static boolean getStopDebug()
           
 boolean getUseFileModel()
          The value of useFileModel defines if a file model is used rather than physical files
 boolean getUseLog()
           
 Variable getVariable(java.lang.String varName)
          Fetches a variable by name
 java.lang.Object getVariableImplementation(java.lang.String varName)
          Retrurns the implementation of a variable If the variable implementation has not been instantiatied, this is done here.
 java.lang.Object getVariableImplementation(Variable var)
           
 java.util.Collection<Variable> getVariables()
           
 java.lang.Object getVariableValue(java.lang.String varName)
           
 void increaseIteratorCount()
          Increases iterator counter
 void increaseIteratorPosition()
          Increase position counter
static void increaseLineNumber(java.lang.String s)
          Traceability testing Handels line number in file
static void indent()
          Increases the indentation for printing
 void initIteratorCounters()
          Resets itarator counters
 boolean isInPrintAction()
          Checks if execution is in print action
 boolean isUnprotectedBlock()
          Checks if a block is unprotected
 void log(java.lang.String s)
          Logs the string with date
 void notifyError(java.lang.String error, ExpressionEvaluator expEval)
           
 void notifyMessage(java.lang.String msg)
          notifies about some events....
 void print(java.lang.String s, boolean println)
          Prints a string to the correct context
 void println(java.lang.String s)
          Prints the string s
 void removeVariable(Variable var)
          Removes a given VariableDeclaration from the collection
static void resetBlockCounter()
           
static void resetDebug()
           
 void saveTargetModel(java.lang.String fileLoc, org.eclipse.emf.ecore.EObject model)
           
 void setCachedReference(java.lang.String refname, java.lang.Object value)
          Puts a refrence into the cache
 void setCurrentStream(java.lang.String contextReference)
          Set the current stream
 void setCurrentStream(java.lang.String uri, java.lang.String context)
          Creates a new file and stream
static void setDebug(boolean tf)
           
 void setInPrintAction(boolean inPrintAction)
          Sets the _inPrintAction flag
 void setOwnerStack(RuleExecutionStack stack)
          Sets the owner stack
 void setParentEnvironment(ExecutionEnvironment parent)
          Sets the parent environment
static void setPrintContext(java.lang.String context)
          Sets the print context
 void setRootDirectory(java.lang.String rootDir)
          Defines the root directory for file generation
static void setTrace(boolean tV)
          Traceability testing Set if print statement and not stdout
 void setTypeForVariable(Variable varDecl, java.lang.Object varValue)
          Sets the type of a variable
 void setUnprotectedBlock(boolean unprotected)
           
 void setUseFileModel(boolean useModel)
          Defines if a file model shall be used rather than writing to physical files.
 void setUseLog(boolean useLog)
          Defines the execution should use a system log or not.
 void setUseParentCache(boolean useParentCache)
          Sets if the parent cache is to be used
 void setVariable(java.lang.String varName, Variable val)
          Puts the variable into the _variables Hashtable
 void startUnprotectedBlock(java.lang.String objectUri)
           
static void stopDebug()
           
 void storeFiles()
          Stores the OutputStream
 void storeInputObject(java.lang.Object ret)
           
static void undent()
          Decreases the indentation for printing
static boolean useIndent()
          Whether indenting is used or not
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExecutionEnvironment

public ExecutionEnvironment()
Default constructor

Method Detail

setUseFileModel

public void setUseFileModel(boolean useModel)
Defines if a file model shall be used rather than writing to physical files.

Parameters:
useModel -

getUseFileModel

public boolean getUseFileModel()
The value of useFileModel defines if a file model is used rather than physical files

Returns:
boolean value

setDebug

public static void setDebug(boolean tf)

getDebug

public static boolean getDebug()

getStopDebug

public static boolean getStopDebug()

getContDebug

public static boolean getContDebug()

stopDebug

public static void stopDebug()

contDebug

public static void contDebug()

resetDebug

public static void resetDebug()

setUseLog

public void setUseLog(boolean useLog)
Defines the execution should use a system log or not.

Parameters:
useLog -

getUseLog

public boolean getUseLog()
Returns:
true if execution is set to use log

getFileModel

public FileResourcesType getFileModel()
Iterats the generated results and populates a EMF File Model (the frm model)

Returns:
the file model

setRootDirectory

public void setRootDirectory(java.lang.String rootDir)
Defines the root directory for file generation

Parameters:
rootDir -

indent

public static void indent()
Increases the indentation for printing


undent

public static void undent()
Decreases the indentation for printing


getIndent

public static java.lang.String getIndent()
Returns the indent string

Returns:

useIndent

public static boolean useIndent()
Whether indenting is used or not

Returns:
true if indent is used

getVariable

public Variable getVariable(java.lang.String varName)
Fetches a variable by name

Parameters:
varName -
Returns:
variable or null

getVariables

public java.util.Collection<Variable> getVariables()
Returns:

notifyMessage

public void notifyMessage(java.lang.String msg)
notifies about some events....

Parameters:
msg -

notifyError

public void notifyError(java.lang.String error,
                        ExpressionEvaluator expEval)
Parameters:
error -

getIteratorCount

public int getIteratorCount()
The counter for an iterator index in a forEach The counter value is relative to the filter applied

Returns:

getIteratorPosition

public int getIteratorPosition()
The "position" of an iterator index in a forEach iterator statement, relative to the full contents of the source of the iterator - i.e. ignoring any filter on the iterator

Returns:

initIteratorCounters

public void initIteratorCounters()
Resets itarator counters


increaseIteratorCount

public void increaseIteratorCount()
Increases iterator counter


increaseIteratorPosition

public void increaseIteratorPosition()
Increase position counter


getVariableImplementation

public java.lang.Object getVariableImplementation(java.lang.String varName)
Retrurns the implementation of a variable If the variable implementation has not been instantiatied, this is done here.

Parameters:
varName -
Returns:

getVariableValue

public java.lang.Object getVariableValue(java.lang.String varName)

getVariableImplementation

public java.lang.Object getVariableImplementation(Variable var)
Parameters:
var -
Returns:

setTypeForVariable

public void setTypeForVariable(Variable varDecl,
                               java.lang.Object varValue)
Sets the type of a variable

Parameters:
varDecl -
varValue -

assignVariableValue

public java.lang.Object assignVariableValue(java.lang.String varName,
                                            java.lang.Object value,
                                            AssignmentOperator operator,
                                            Expression assignedExpression)
Assignes a value to a variable

Parameters:
varName -
value -

getAssignValue

public static java.lang.Object getAssignValue(java.lang.String type,
                                              java.lang.Object input,
                                              java.lang.Object assignValue,
                                              AssignmentOperator operator)
Returns the assign value

Parameters:
input -
assignValue -
operator -
Returns:

setVariable

public void setVariable(java.lang.String varName,
                        Variable val)
Puts the variable into the _variables Hashtable

Parameters:
varName -
val -

findVariable

public Variable findVariable(java.lang.String varName)
Searches for a given variable name

Parameters:
varName -
Returns:
a variable declaration if foun, else NULL

getParentEnvironment

public ExecutionEnvironment getParentEnvironment()
Gets the execution environment's parent environment

Returns:
the parent environment

setParentEnvironment

public void setParentEnvironment(ExecutionEnvironment parent)
Sets the parent environment

Parameters:
parent -

setOwnerStack

public void setOwnerStack(RuleExecutionStack stack)
Sets the owner stack

Parameters:
stack -

addVariables

public void addVariables(java.util.List<Variable> variables)
Adds a list of variables (includes checking for exsistence)

Parameters:
variables -

addModelVariables

public void addModelVariables(java.util.List<VariableDeclaration> variables)
Parameters:
variables -

addVariable

public void addVariable(Variable var)
adds a variable

Parameters:
var -

removeVariable

public void removeVariable(Variable var)
Removes a given VariableDeclaration from the collection

Parameters:
var -

addLocalVariablesZZZ

public void addLocalVariablesZZZ(java.util.List<VariableDeclaration> variables,
                                 RuleExecutor currentRuleExecutor)
Deprecated. 

Adds local variables to the environment

Parameters:
ifSt -
env -

getInputObject

public java.lang.Object getInputObject(java.lang.String name)
Gets an input object

Parameters:
name -
Returns:

storeInputObject

public void storeInputObject(java.lang.Object ret)

addInputObject

public void addInputObject(java.lang.String name,
                           java.lang.Object obj)
Adds an input object

Parameters:
name -
obj -

clearInputObject

public void clearInputObject(java.lang.String name)
Clears an object with a given name

Parameters:
name -

setUseParentCache

public void setUseParentCache(boolean useParentCache)
Sets if the parent cache is to be used

Parameters:
useParentCache -

getCachedReference

public java.lang.Object getCachedReference(java.lang.String refName)
Retrieves an already chached refrence as an object

Parameters:
refName -
Returns:
a refrence with the given name

setCachedReference

public void setCachedReference(java.lang.String refname,
                               java.lang.Object value)
Puts a refrence into the cache

Parameters:
refname -
value -

clearReferenceCache

public void clearReferenceCache()
Clears all cached refrences


getOutputStream

public java.io.OutputStream getOutputStream(java.lang.String uri)
Gets the output stream from the environment, if null returns the parent environment's output stream

Parameters:
uri -
Returns:
An output stream or NULL

setCurrentStream

public void setCurrentStream(java.lang.String uri,
                             java.lang.String context)
Creates a new file and stream

Parameters:
uri -
context -

setCurrentStream

public void setCurrentStream(java.lang.String contextReference)
Set the current stream

Parameters:
contextReference -

getCurrentStream

public java.io.OutputStream getCurrentStream()
Returns:
The current stream

getCurrentPrintStream

public java.io.PrintStream getCurrentPrintStream()
Returns:
PrintStream

storeFiles

public void storeFiles()
Stores the OutputStream


clean

public void clean()
Cleans current streams, streams and calls cleanLocal


setPrintContext

public static void setPrintContext(java.lang.String context)
Sets the print context

Parameters:
context -

print

public void print(java.lang.String s,
                  boolean println)
Prints a string to the correct context

Parameters:
s -
println -

log

public void log(java.lang.String s)
Logs the string with date

Parameters:
s -

println

public void println(java.lang.String s)
Prints the string s

Parameters:
s -

getResources

public static java.util.Vector<java.lang.String> getResources()
Returns:
A (String) list of produced resources (files) (their names)

cleanResources

public static void cleanResources()
Clears the resources


setInPrintAction

public void setInPrintAction(boolean inPrintAction)
Sets the _inPrintAction flag

Parameters:
inPrintAction -

isInPrintAction

public boolean isInPrintAction()
Checks if execution is in print action

Returns:

setTrace

public static void setTrace(boolean tV)
Traceability testing Set if print statement and not stdout

Parameters:
tV -

increaseLineNumber

public static void increaseLineNumber(java.lang.String s)
Traceability testing Handels line number in file

Parameters:
s -

getLineNumber

public int getLineNumber()
Traceability testing

Returns:

resetBlockCounter

public static void resetBlockCounter()

startUnprotectedBlock

public void startUnprotectedBlock(java.lang.String objectUri)
Parameters:
objectUri -

endUnprotectedBlock

public void endUnprotectedBlock()

isUnprotectedBlock

public boolean isUnprotectedBlock()
Checks if a block is unprotected

Returns:
(true or false) the value of the variable _unprotectedBlock

setUnprotectedBlock

public void setUnprotectedBlock(boolean unprotected)

saveTargetModel

public void saveTargetModel(java.lang.String fileLoc,
                            org.eclipse.emf.ecore.EObject model)
Parameters:
targetFile -
model -