sleep.bridges
Class SleepClosure

java.lang.Object
  extended bysleep.bridges.SleepClosure
All Implemented Interfaces:
Function
Direct Known Subclasses:
BasicSubroutine

public class SleepClosure
extends Object
implements Function

The Sleep Closure class. This class represents a Function object that is also a self contained closure


Field Summary
static Class CLOSURE_CLASS
           
 
Constructor Summary
SleepClosure(ScriptInstance si, Block _code)
          Creates a new Sleep Closure, with a brand new set of internal variables.
SleepClosure(ScriptInstance si, Block _code, Variable _var)
          Creates a new Sleep Closure that uses the specified variable container for its internal variables
 
Method Summary
 Scalar callClosure(String message, ScriptInstance si, Stack locals)
          "Safely" calls this closure.
 Scalar evaluate(String message, ScriptInstance si, Stack locals)
          Evaluates the closure, use callClosure instead.
 ScriptInstance getOwner()
          Returns the owning script instance
 Block getRunnableCode()
          Returns the runnable block of code associated with this closure
 Variable getVariables()
          Returns the variable container for this closures
 void setVariables(Variable _variables)
          Sets the variable environment for this closure
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CLOSURE_CLASS

public static Class CLOSURE_CLASS
Constructor Detail

SleepClosure

public SleepClosure(ScriptInstance si,
                    Block _code)
Creates a new Sleep Closure, with a brand new set of internal variables. Don't be afraid, you can call this constructor from your code.


SleepClosure

public SleepClosure(ScriptInstance si,
                    Block _code,
                    Variable _var)
Creates a new Sleep Closure that uses the specified variable container for its internal variables

Method Detail

getOwner

public ScriptInstance getOwner()
Returns the owning script instance


getRunnableCode

public Block getRunnableCode()
Returns the runnable block of code associated with this closure


getVariables

public Variable getVariables()
Returns the variable container for this closures


setVariables

public void setVariables(Variable _variables)
Sets the variable environment for this closure


callClosure

public Scalar callClosure(String message,
                          ScriptInstance si,
                          Stack locals)
"Safely" calls this closure. Use this if you are evaluating this closure from your own code.

Parameters:
message - the message to pass to this closure (available as $0)
Returns:
the scalar returned by this closure

evaluate

public Scalar evaluate(String message,
                       ScriptInstance si,
                       Stack locals)
Evaluates the closure, use callClosure instead.

Specified by:
evaluate in interface Function
Parameters:
message - the function being called.
si - an instance of the script calling this function.
locals - a stack containing the locals passed to this function. The locals are Scalar values passed in reverse order i.e. [arg n, arg n-1, ..., arg 1, arg 0]
Returns:
an instance of Scalar containing the return value of this function.