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  ExecutionEnvironment _parentEnv
           
protected static java.util.Hashtable _streamContexts
           
protected static java.util.Hashtable _streams
           
 
Constructor Summary
ExecutionEnvironment()
          Default constructor
 
Method Summary
 void addInputObject(java.lang.String name, java.lang.Object obj)
           
protected  java.io.OutputStream addOutputStream(java.lang.String uri, java.io.OutputStream stream, java.lang.String context)
           
 void addVariable(VariableDeclaration var)
          adds a variable
 void addVariables(java.util.List variables)
           
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()
           
protected  void cleanLocal()
           
static void cleanResources()
           
 void clearInputObject(java.lang.String name)
           
 void clearReferenceCache()
           
protected  void finalize()
           
 VariableDeclaration findVariable(java.lang.String varName)
           
 java.lang.Object getCachedReference(java.lang.String refName)
           
 java.io.OutputStream getCurrentStream()
           
protected  java.lang.String getCurrentStreamUri()
           
 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)
           
 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
 java.io.OutputStream getOutputStream(java.lang.String uri)
           
protected  java.io.OutputStream getOutputStreamForContext(java.lang.String context)
           
 ExecutionEnvironment getParentEnvironment()
           
static java.util.Vector getResources()
           
 boolean getUseFileModel()
          The value of useFileModel defines id 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 teh variable implementation has not been instantiatied, this is done here.
 void increaseIteratorCount()
          Increases iterator counter
 void increaseIteratorPosition()
          Increase position counter
static void indent()
          Increases the indentation for printing
 void initIteratorCounters()
          Resets itarator counters
 void log(java.lang.String s)
           
 void notifyMessage(java.lang.String msg)
          notifies about some events....
 void print(java.lang.String s, boolean println)
           
 void println(java.lang.String s)
           
 void removeVariable(VariableDeclaration var)
           
 void setCachedReference(java.lang.String refname, java.lang.Object value)
           
 void setCurrentStream(java.lang.String contextReference)
           
 void setCurrentStream(java.lang.String uri, java.lang.String context)
           
 void setOwnerStack(RuleExecutionStack stack)
           
 void setParentEnvironment(ExecutionEnvironment parent)
           
static void setPrintContext(java.lang.String context)
           
 void setRootDirectory(java.lang.String rootDir)
          Defines the root directory for file generation
 void setTypeForVariable(VariableDeclaration varDecl, java.lang.Object varValue)
           
 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)
           
 void setVariable(java.lang.String varName, VariableDeclaration val)
           
static void undent()
          Decreases the indentation for printing
static boolean useIndent()
          Wether 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
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 id a file model is used rather than physical files

Returns:

setUseLog

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

Parameters:
useLog -

getUseLog

public boolean getUseLog()
Returns:

getFileModel

public org.modelware.modelbus.adapter.frm.FileResourcesType getFileModel()
Iterats the generated results and populates a EMF File Model (the frm model)

Returns:

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()
Wether indenting is used or not

Returns:

getVariable

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

Parameters:
varName -
Returns:

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 teh variable implementation has not been instantiatied, this is done here.

Parameters:
varName -
Returns:

setTypeForVariable

public void setTypeForVariable(VariableDeclaration varDecl,
                               java.lang.Object 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)

findVariable

public VariableDeclaration findVariable(java.lang.String varName)

getParentEnvironment

public ExecutionEnvironment getParentEnvironment()

setParentEnvironment

public void setParentEnvironment(ExecutionEnvironment parent)

setOwnerStack

public void setOwnerStack(RuleExecutionStack stack)

addVariables

public void addVariables(java.util.List variables)

addVariable

public void addVariable(VariableDeclaration var)
adds a variable

Parameters:
var -

removeVariable

public void removeVariable(VariableDeclaration var)

getInputObject

public java.lang.Object getInputObject(java.lang.String name)

addInputObject

public void addInputObject(java.lang.String name,
                           java.lang.Object obj)

clearInputObject

public void clearInputObject(java.lang.String name)

setUseParentCache

public void setUseParentCache(boolean useParentCache)

getCachedReference

public java.lang.Object getCachedReference(java.lang.String refName)

setCachedReference

public void setCachedReference(java.lang.String refname,
                               java.lang.Object value)

clearReferenceCache

public void clearReferenceCache()

addOutputStream

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

getOutputStreamForContext

protected java.io.OutputStream getOutputStreamForContext(java.lang.String context)

getOutputStream

public java.io.OutputStream getOutputStream(java.lang.String uri)

setCurrentStream

public void setCurrentStream(java.lang.String uri,
                             java.lang.String context)

setCurrentStream

public void setCurrentStream(java.lang.String contextReference)

getCurrentStream

public java.io.OutputStream getCurrentStream()

getCurrentStreamUri

protected java.lang.String getCurrentStreamUri()

clean

public void clean()

cleanLocal

protected void cleanLocal()

setPrintContext

public static void setPrintContext(java.lang.String context)

print

public void print(java.lang.String s,
                  boolean println)

log

public void log(java.lang.String 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