org.sintef.mofscript.runtime
Class ExecutionEnvironment

java.lang.Object
  extended by org.sintef.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

Field Summary
protected  java.io.OutputStream _currentStream
           
protected static int _lineNumber
           
protected  java.io.File _openFile
           
protected  ExecutionEnvironment _parentEnv
           
protected static java.util.Hashtable _streamContexts
           
protected static java.util.Hashtable _streams
           
protected static int _traceCount
           
protected static boolean _traceValue
           
 
Constructor Summary
ExecutionEnvironment()
          Default constructor
 
Method Summary
 void addInputObject(java.lang.String name, java.lang.Object obj)
          Adds an input object
protected  java.io.OutputStream addOutputStream(java.lang.String uri, java.io.OutputStream stream, java.lang.String context)
          Adds an output stream
 void addVariable(VariableDeclaration var)
          adds a variable
 void addVariables(java.util.List variables)
          Adds a list of variables (includes checking for exsistence)
static java.lang.Object assignValue(java.lang.String type, java.lang.Object input, java.lang.Object assignValue, AssignmentOperator operator)
          Returns the assign value
 void assignVariableValue(java.lang.String varName, java.lang.Object value, AssignmentOperator operator)
          Assignes a value to a variable
 void clean()
          Cleans current streams, streams and calls cleanLocal
protected  void cleanLocal()
          Cleans the environment
static void cleanResources()
           
 void clearInputObject(java.lang.String name)
          Clears an object with a given name
 void clearReferenceCache()
          Clears all cached refrences
protected  void finalize()
           
 VariableDeclaration findVariable(java.lang.String varName)
          Searches for a given variable name
 java.lang.Object getCachedReference(java.lang.String refName)
          Retrieves an already chached refrence as an object
 java.io.OutputStream getCurrentStream()
           
protected  java.lang.String getCurrentStreamUri()
          Gets the current stream's URI
 org.modelware.modelbus.adapter.frm.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
protected  java.io.OutputStream getOutputStreamForContext(java.lang.String context)
          Gets an output stream for a given context
 ExecutionEnvironment getParentEnvironment()
          Gets the execution environment's parent environment
static java.util.Vector getResources()
           
 boolean getUseFileModel()
          The value of useFileModel defines if a file model is used rather than physical files
 boolean getUseLog()
           
 VariableDeclaration 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.
 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
 void log(java.lang.String s)
          Logs the string with date
 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)
           
 void removeVariable(VariableDeclaration var)
          Removes a given VariableDeclaration from the collection
 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
 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(VariableDeclaration varDecl, java.lang.Object varValue)
          Sets the type of a variable
 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, VariableDeclaration val)
          Puts the variable into the _variables Hashtable
static void undent()
          Decreases the indentation for printing
static boolean useIndent()
          Whether indenting is used or not
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_streams

protected static java.util.Hashtable _streams

_streamContexts

protected static java.util.Hashtable _streamContexts

_parentEnv

protected ExecutionEnvironment _parentEnv

_currentStream

protected java.io.OutputStream _currentStream

_openFile

protected java.io.File _openFile

_lineNumber

protected static int _lineNumber

_traceCount

protected static int _traceCount

_traceValue

protected static boolean _traceValue
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

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 org.modelware.modelbus.adapter.frm.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 VariableDeclaration getVariable(java.lang.String varName)
Fetches a variable by name

Parameters:
varName -
Returns:
variable or null

notifyMessage

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

Parameters:
msg -

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:

setTypeForVariable

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

Parameters:
varDecl -
varValue -

assignVariableValue

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

Parameters:
varName -
value -

assignValue

public static java.lang.Object assignValue(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,
                        VariableDeclaration val)
Puts the variable into the _variables Hashtable

Parameters:
varName -
val -

findVariable

public VariableDeclaration 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 variables)
Adds a list of variables (includes checking for exsistence)

Parameters:
variables -

addVariable

public void addVariable(VariableDeclaration var)
adds a variable

Parameters:
var -

removeVariable

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

Parameters:
var -

getInputObject

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

Parameters:
name -
Returns:

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


addOutputStream

protected java.io.OutputStream addOutputStream(java.lang.String uri,
                                               java.io.OutputStream stream,
                                               java.lang.String context)
Adds an output stream

Parameters:
uri -
stream -
context -
Returns:
An output stream

getOutputStreamForContext

protected java.io.OutputStream getOutputStreamForContext(java.lang.String context)
Gets an output stream for a given context

Parameters:
context -
Returns:
An output stream or NULL

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

getCurrentStreamUri

protected java.lang.String getCurrentStreamUri()
Gets the current stream's URI

Returns:
String containing URI or NULL

clean

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


cleanLocal

protected void cleanLocal()
Cleans the environment


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)

getResources

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

cleanResources

public static void cleanResources()

finalize

protected void finalize()
                 throws java.lang.Throwable
Overrides:
finalize in class java.lang.Object
Throws:
java.lang.Throwable

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 - TODO rewrite

getLineNumber

public int getLineNumber()
Traceability testing

Returns: