sleep.bridges
Class BridgeUtilities

java.lang.Object
  extended by sleep.bridges.BridgeUtilities

public class BridgeUtilities
extends java.lang.Object

A bridge is a class that bridges your applications API and sleep. Bridges are created using interfaces from the sleep.interfaces package. Arguments are passed to bridges generally in a java.util.Stack form. The Stack of arguments contains sleep Scalar objects. The BridgeUtilities makes it safer and easier for you to extract Java types from arguments.

 // some code to execute an internal add function, not a complete example
 
 public class MyAddFunction implements Function
 {
    public Scalar evaluate(String name, ScriptInstance script, Stack arguments) 
    {
       if (name.equals("&add"))
       {
          int a = BridgeUtilities.getInt(arguments, 0);  
          int b = BridgeUtilities.getInt(arguments, 0); 
  
          return SleepUtils.getScalar(a + b); 
       }
 
       return SleepUtils.getEmptyScalar();
    }
 }
 


Constructor Summary
BridgeUtilities()
           
 
Method Summary
static boolean expectArray(java.lang.String n, Scalar value)
          returns true if value is an array or throws an appropriate exception if value is not an array.
static java.util.Map extractNamedParameters(java.util.Stack args)
          extracts all named parameters from the argument stack.
static Scalar flattenArray(Scalar fromValue, Scalar toValue)
          Flattens the specified scalar array.
static Scalar flattenIterator(java.util.Iterator i, Scalar toValue)
          Flattens the specified arrays within the specified iterator.
static ScalarArray getArray(java.util.Stack arguments)
          grab a sleep array, if the stack is empty a scalar array with no elements will be returned.
static java.lang.Class getClass(java.util.Stack arguments, java.lang.Class defaultValue)
          grab a class, if the stack is empty the default value will be returned
static double getDouble(java.util.Stack arguments)
          grab a double.
static double getDouble(java.util.Stack arguments, double defaultValue)
          grab a double, if the stack is empty the default value will be returned
static java.io.File getFile(java.util.Stack arguments, ScriptInstance i)
          returns a File object from a string argument, the path in the string argument is transformed such that the character / will refer to the correct path separator for the current OS.
static SleepClosure getFunction(java.util.Stack arguments, ScriptInstance script)
          retrieves an executable Function object from the stack.
static ScalarHash getHash(java.util.Stack arguments)
          grab a sleep hash, if the stack is empty a scalar hash with no members will be returned.
static int getInt(java.util.Stack arguments)
          grab an integer.
static int getInt(java.util.Stack arguments, int defaultValue)
          grab an integer, if the stack is empty the default value will be returned
static java.util.Iterator getIterator(java.util.Stack arguments, ScriptInstance script)
          grabs a scalar iterator, this can come from either an array or a closure called continuously until $null is returned.
static KeyValuePair getKeyValuePair(java.util.Stack arguments)
          Pops a Key/Value pair object off of the argument stack.
static long getLong(java.util.Stack arguments)
          grab a long.
static long getLong(java.util.Stack arguments, long defaultValue)
          grab a long, if the stack is empty the default value will be returned
static java.lang.Object getObject(java.util.Stack arguments)
          grab an object, if the stack is empty then null will be returned.
static Scalar getScalar(java.util.Stack arguments)
          grab a scalar, if the stack is empty the empty/null scalar will be returned.
static java.lang.String getString(java.util.Stack arguments, java.lang.String defaultValue)
          grab a string, if the stack is empty or if the value is null the default value will be returned.
static ScalarArray getWorkableArray(java.util.Stack arguments)
          grab a sleep array, if the grabbed array is a readonly array, a copy is returned.
static int initLocalScope(ScriptVariables vars, Variable localLevel, java.util.Stack locals)
          initializes local scope based on argument stack
static int normalize(int value, int length)
          normalizes the index value based on the specified length
static byte[] toByteArrayNoConversion(java.lang.String textz)
          converts the specified string to an array of bytes (useful as Sleep stores byte arrays to strings)
static java.io.File toSleepFile(java.lang.String text, ScriptInstance i)
          adjusts the file argument to accomodate for the current working directory
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BridgeUtilities

public BridgeUtilities()
Method Detail

toByteArrayNoConversion

public static byte[] toByteArrayNoConversion(java.lang.String textz)
converts the specified string to an array of bytes (useful as Sleep stores byte arrays to strings)


getInt

public static int getInt(java.util.Stack arguments)
grab an integer. if the stack is empty 0 will be returned.


getInt

public static int getInt(java.util.Stack arguments,
                         int defaultValue)
grab an integer, if the stack is empty the default value will be returned


getClass

public static java.lang.Class getClass(java.util.Stack arguments,
                                       java.lang.Class defaultValue)
grab a class, if the stack is empty the default value will be returned


getLong

public static long getLong(java.util.Stack arguments)
grab a long. if the stack is empty 0 will be returned.


getLong

public static long getLong(java.util.Stack arguments,
                           long defaultValue)
grab a long, if the stack is empty the default value will be returned


getDouble

public static double getDouble(java.util.Stack arguments)
grab a double. if the stack is empty a 0 will be returned


getDouble

public static double getDouble(java.util.Stack arguments,
                               double defaultValue)
grab a double, if the stack is empty the default value will be returned


extractNamedParameters

public static java.util.Map extractNamedParameters(java.util.Stack args)
extracts all named parameters from the argument stack. this method returns a Map whose keys are strings and values are Scalars.


getIterator

public static java.util.Iterator getIterator(java.util.Stack arguments,
                                             ScriptInstance script)
grabs a scalar iterator, this can come from either an array or a closure called continuously until $null is returned.


getArray

public static ScalarArray getArray(java.util.Stack arguments)
grab a sleep array, if the stack is empty a scalar array with no elements will be returned.


getHash

public static ScalarHash getHash(java.util.Stack arguments)
grab a sleep hash, if the stack is empty a scalar hash with no members will be returned.


getWorkableArray

public static ScalarArray getWorkableArray(java.util.Stack arguments)
grab a sleep array, if the grabbed array is a readonly array, a copy is returned. if the stack is empty an array with no elements will be returned.


getObject

public static java.lang.Object getObject(java.util.Stack arguments)
grab an object, if the stack is empty then null will be returned.


getFunction

public static SleepClosure getFunction(java.util.Stack arguments,
                                       ScriptInstance script)
retrieves an executable Function object from the stack. Functions can be passed as closures or as a reference to a built-in Sleep subroutine i.e. &my_func.


getScalar

public static Scalar getScalar(java.util.Stack arguments)
grab a scalar, if the stack is empty the empty/null scalar will be returned.


getString

public static java.lang.String getString(java.util.Stack arguments,
                                         java.lang.String defaultValue)
grab a string, if the stack is empty or if the value is null the default value will be returned.


toSleepFile

public static java.io.File toSleepFile(java.lang.String text,
                                       ScriptInstance i)
adjusts the file argument to accomodate for the current working directory


getFile

public static java.io.File getFile(java.util.Stack arguments,
                                   ScriptInstance i)
returns a File object from a string argument, the path in the string argument is transformed such that the character / will refer to the correct path separator for the current OS. Returns null if no file is specified as an argument.


getKeyValuePair

public static KeyValuePair getKeyValuePair(java.util.Stack arguments)
Pops a Key/Value pair object off of the argument stack. A Key/Value pair is created using the => operator within Sleep scripts. If the top argument on this stack was not created using =>, this function will try to parse a key/value pair using the pattern: [key]=[value]


flattenArray

public static Scalar flattenArray(Scalar fromValue,
                                  Scalar toValue)
Flattens the specified scalar array. The toValue field can be null.


flattenIterator

public static Scalar flattenIterator(java.util.Iterator i,
                                     Scalar toValue)
Flattens the specified arrays within the specified iterator. The toValue field can be null.


initLocalScope

public static int initLocalScope(ScriptVariables vars,
                                 Variable localLevel,
                                 java.util.Stack locals)
initializes local scope based on argument stack


normalize

public static final int normalize(int value,
                                  int length)
normalizes the index value based on the specified length


expectArray

public static boolean expectArray(java.lang.String n,
                                  Scalar value)
returns true if value is an array or throws an appropriate exception if value is not an array.

Parameters:
n - the name of the &function
value - the scalar to check