Package sleep.bridges
Class BridgeUtilities
- java.lang.Object
-
- 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
Constructors Constructor Description BridgeUtilities()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description 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 returnedstatic 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 returnedstatic 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 returnedstatic 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 returnedstatic 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 stackstatic int
normalize(int value, int length)
normalizes the index value based on the specified lengthstatic 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
-
-
-
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 &functionvalue
- the scalar to check
-
-