com.judoscript
Class CallableLocal

java.lang.Object
  extended by com.judoscript.CallableLocal
All Implemented Interfaces:
Callable, Consts, Expr, XMLDumpable, Variable, java.io.Serializable, java.lang.Comparable

public class CallableLocal
extends java.lang.Object
implements Variable, Callable

This class is wraps a runtime-instance along with its script, and make it available to other scripts running in multiple threads, such JUSP pages. For each invocation, its global context is pushed onto the client's context stack.

Let's call the caller as a client, running in its context called RTC; the script object is called a server, running in its context of RGC. Parameters and return values are conceptually passed "by value".

Only server functions can be accessed. Try to refrain from using global variable as much possible, especially as server programs. When need to, treat the code as running in separate threads and enforce concurrency constraints wherever appropriate.

See Also:
Serialized Form

Field Summary
 
Fields inherited from interface com.judoscript.Consts
ADAPTER_PREFIX, ANNOTATION_NAME, ANY_TAG_SYMBOL, ANY_TEXT_SYMBOL, ARGS_NAME, BSF_NAME, CONTEXT_NAME, DEFAULT_CONNECTION_NAME, DEFAULT_HIBERNATE_NAME, DEFAULT_NS_SYMBOL, DYNAMIC_EVAL, DYNAMIC_EVALEXTERNAL, DYNAMIC_EVALFILE, FOREVER, FS_ADD_TO_CLASSPATH, FS_COPY, FS_DO, FS_LIST, FS_LIST_BY_DATE, FS_LIST_BY_EXT, FS_LIST_BY_NAME, FS_LIST_BY_NONE, FS_LIST_BY_SIZE, FS_LIST_COMPRESSED_SIZE, FS_LIST_COUNT, FS_LIST_COUNTLINES, FS_LIST_COUNTWORDS, FS_LIST_PER_FILE, FS_LIST_PER_NONE, FS_LIST_SIZE, FS_MAKEDIR, FS_MOVE, FS_NONE, FS_REMOVE, FS_REMOVEDIR, FS_RESULT_NAME, FS_SETFILETIME, FS_SETREADONLY, FS_SETREADWRITE, HTTP_GET, HTTP_HEAD, HTTP_POST, IO_GZIPPED_INPUTFILE, IO_GZIPPED_OUTPUTFILE, IO_GZIPPED_TEXTINPUTFILE, IO_GZIPPED_TEXTOUTPUTFILE, IO_INPUTSTREAM, IO_OUTPUTSTREAM, IO_RANDOMACCESS, IO_TEXTINPUTFILE, IO_TEXTOUTPUTFILE, ISSUE_LEVEL_DEBUG, ISSUE_LEVEL_ERROR, ISSUE_LEVEL_IGNORE, ISSUE_LEVEL_INFO, ISSUE_LEVEL_WARN, JAVA_ANY, JAVA_ANY_I, JAVA_BOOLEAN, JAVA_BOOLEAN_I, JAVA_BOOLEAN_O, JAVA_BYTE, JAVA_BYTE_I, JAVA_BYTE_O, JAVA_CHAR, JAVA_CHAR_I, JAVA_CHAR_O, JAVA_CURRENCY, JAVA_CURRENCY_I, JAVA_DATE_O, JAVA_DOUBLE, JAVA_DOUBLE_I, JAVA_DOUBLE_O, JAVA_FLOAT, JAVA_FLOAT_I, JAVA_FLOAT_O, JAVA_INT, JAVA_INT_I, JAVA_INT_O, JAVA_LONG, JAVA_LONG_I, JAVA_LONG_O, JAVA_SHORT, JAVA_SHORT_I, JAVA_SHORT_O, JAVA_SQL_DATE_O, JAVA_SQL_TIME_O, JAVA_SQL_TIMESTAMP_O, JAVA_STRING, JAVA_STRING_I, LABEL_SCHEDULE, LAMBDA_PREFIX, LOCAL_NAME, LOCALTEXT_NAME, MAX_READ_FILE_LENGTH, NODE_PREFIX, OP_AND, OP_AND_ASSIGN, OP_ASSIGN, OP_COMPLEMENT, OP_CONCAT, OP_CONCAT_ASSIGN, OP_COPY, OP_DIV, OP_DIV_ASSIGN, OP_EQ, OP_GE, OP_GT, OP_LE, OP_LOGIC_AND_ASSIGN, OP_LOGIC_OR_ASSIGN, OP_LSHIFT, OP_LSHIFT_ASSIGN, OP_LT, OP_MINUS, OP_MINUS_ASSIGN, OP_MOD, OP_MOD_ASSIGN, OP_MUL, OP_MUL_ASSIGN, OP_NE, OP_NOT, OP_OR, OP_OR_ASSIGN, OP_PLUS, OP_PLUS_ASSIGN, OP_RSHIFT, OP_RSHIFT_ASSIGN, OP_RUSHIFT, OP_RUSHIFT_ASSIGN, OP_XOR, OP_XOR_ASSIGN, OPTION_JDBC_PASSWORD, OPTION_JDBC_URL, OPTION_JDBC_USERNAME, ORACLE_BFILE, ORACLE_CURSOR, ORACLE_FIXED_CHAR, ORACLE_NUMBER, ORACLE_PLSQL_INDEX_TABLE, ORACLE_RAW, ORACLE_ROWID, PARENT_NAME, PARSER_NAME, PRAGMA_ASSERTION, PRAGMA_CRYPTOCLASS, PRAGMA_GUILISTENER, PRAGMA_INCLUDEPATH, PRAGMA_JAVACOMPILER, PRAGMA_JDBCDRIVER, pragma_names, PRAGMA_UNKNOWN, PREPARED_STMT_CALL, PRINT_ERR, PRINT_LOG, PRINT_OUT, PRINT_PIPE, PRINT_USER, RTERR_ASSERTION_FAILURE, RTERR_BAD_PRINT_TARGET, RTERR_CONSTANT_NOT_DEFINED, RTERR_CONSTANT_REDEFINITION, RTERR_EMBEDDED_JAVA_COMPILE_FAILED, RTERR_ENVIRONMENT_ERROR, RTERR_EVALUATION_FAILED, RTERR_FS_COPY_MOVE_FAILED, RTERR_FS_CREATE_DIR_FAILED, RTERR_FS_REMOVE_DIR_FAILED, RTERR_FUNCTION_ALREADY_DEFINED, RTERR_ILLEGAL_ACCESS, RTERR_ILLEGAL_ARGUMENTS, RTERR_ILLEGAL_INDEXED_ACCESS, RTERR_ILLEGAL_JUMP, RTERR_ILLEGAL_STATEMENT, RTERR_ILLEGAL_VALUE_SETTING, RTERR_INTERNAL_ERROR, RTERR_INVALID_ARRAY_ACCESS, RTERR_INVALID_JAVA_VERSION, RTERR_INVALID_MEMBER_ACCESS, RTERR_INVALID_NUMBER_FORMAT, RTERR_INVALID_VARIABLE_NAME, RTERR_IO_FAILURE, RTERR_IO_FILE_OPEN_FAILURE, RTERR_JAVA_COMPILE_FAILED, RTERR_JAVA_EXCEPTION, RTERR_JAVA_METHOD_CALL, RTERR_JAVA_OBJECT_CREATION, RTERR_JDBC_DRIVER_NOT_FOUND, RTERR_JDBC_FAILURE, RTERR_JDBC_INVALID_COLUMN, RTERR_JDBC_WARNING, RTERR_MAIL_MISSING_FIELD, RTERR_MAILSERVER_NOT_CONNECTED, RTERR_METHOD_NOT_FOUND, rterr_names, RTERR_NO_SUCH_VALUE, RTERR_OBJECT_INIT, RTERR_TIMER_ALREADY_EXISTS, RTERR_UNDEFINED_GUI_EVENT, RTERR_UNDEFINED_OBJECT_TYPE, RTERR_USER_EXCEPTION, RTERR_XML_PARSING_ERROR, RULEENGINE_MAX_ITERATIONS, SYS_NAME, TEMPVAR_PREFIX, TEXT_PREFIX, THIS_NAME, THREAD_PREFIX, TIMER_NAME, TYPE_ARRAY, TYPE_CALLABLE, TYPE_COM, TYPE_COMPLEX, TYPE_CONTEXT, TYPE_DATE, TYPE_DOUBLE, TYPE_FUNCTION, TYPE_INT, TYPE_INTERNAL, TYPE_JAVA, TYPE_NAN, TYPE_NIL, TYPE_OBJECT, TYPE_QUEUE, TYPE_SET, TYPE_STACK, TYPE_STRING, TYPE_STRUCT, TYPE_UNDEFINED, TYPE_UNKNOWN, TYPE_WS, TYPE1_SYMBOL, TYPE2_SYMBOL, TYPE3_SYMBOL, XML_EVENT_PREFIX
 
Fields inherited from interface com.judoscript.Callable
illegalAccess
 
Method Summary
 Variable cloneValue()
           
 void close()
           
 int compareTo(java.lang.Object o)
           
 void dump(XMLWriter out)
           
 Variable eval()
           
 boolean getBoolValue()
           
static Callable getCallable(java.lang.String name)
           
 java.util.Date getDateValue()
           
 double getDoubleValue()
           
 int getJavaPrimitiveType()
           
 long getLongValue()
           
 java.lang.Object[] getObjectArrayValue()
          When isArray(), returns an array of Object values.
 java.lang.Object getObjectValue()
           
 java.sql.Date getSqlDate()
           
 java.sql.Time getSqlTime()
           
 java.sql.Timestamp getSqlTimestamp()
           
 java.lang.String getStringValue()
           
 int getType()
           
 java.lang.String getTypeName()
           
 Variable invoke(java.lang.String fxn, Expr[] params, int[] javaTypes)
           
 boolean isA(java.lang.String name)
           
 boolean isArray()
           
 boolean isCOM()
           
 boolean isComplex()
           
 boolean isDate()
           
 boolean isDouble()
           
 boolean isFunction()
           
 boolean isInt()
           
 boolean isInternal()
           
 boolean isJava()
           
 boolean isNil()
           
 boolean isNumber()
           
 boolean isObject()
           
 boolean isQueue()
           
 boolean isReadOnly()
           
 boolean isSet()
           
 boolean isStack()
           
 boolean isString()
           
 boolean isStruct()
           
 boolean isUnknownType()
           
 boolean isValue()
           
 boolean isWebService()
           
 Expr optimize()
           
 Expr reduce(java.util.Stack stack)
           
static void registerCallable(java.lang.String name, Script script, RuntimeGlobalContext rgc)
           
 Variable resolveVariable(java.lang.String name)
           
 Variable resolveVariable(Variable name)
           
 void setJavaPrimitiveType(int type)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

invoke

public Variable invoke(java.lang.String fxn,
                       Expr[] params,
                       int[] javaTypes)
                throws java.lang.Throwable
Specified by:
invoke in interface Callable
Specified by:
invoke in interface Variable
Throws:
java.lang.Throwable

isInternal

public boolean isInternal()
Specified by:
isInternal in interface Variable

getTypeName

public java.lang.String getTypeName()
Specified by:
getTypeName in interface Variable

cloneValue

public Variable cloneValue()
Specified by:
cloneValue in interface Variable

setJavaPrimitiveType

public void setJavaPrimitiveType(int type)
Specified by:
setJavaPrimitiveType in interface Variable

getSqlDate

public java.sql.Date getSqlDate()
                         throws java.lang.Throwable
Specified by:
getSqlDate in interface Variable
Throws:
java.lang.Throwable

getSqlTime

public java.sql.Time getSqlTime()
                         throws java.lang.Throwable
Specified by:
getSqlTime in interface Variable
Throws:
java.lang.Throwable

getSqlTimestamp

public java.sql.Timestamp getSqlTimestamp()
                                   throws java.lang.Throwable
Specified by:
getSqlTimestamp in interface Variable
Throws:
java.lang.Throwable

resolveVariable

public Variable resolveVariable(java.lang.String name)
                         throws java.lang.Throwable
Specified by:
resolveVariable in interface Variable
Throws:
java.lang.Throwable

resolveVariable

public Variable resolveVariable(Variable name)
                         throws java.lang.Throwable
Specified by:
resolveVariable in interface Variable
Throws:
java.lang.Throwable

getObjectArrayValue

public java.lang.Object[] getObjectArrayValue()
                                       throws java.lang.Throwable
When isArray(), returns an array of Object values. Otherwise, returns an array with one element, its Object value.

Specified by:
getObjectArrayValue in interface Variable
Throws:
java.lang.Throwable

close

public void close()
Specified by:
close in interface Variable

getType

public int getType()
Specified by:
getType in interface Expr

getJavaPrimitiveType

public int getJavaPrimitiveType()
Specified by:
getJavaPrimitiveType in interface Expr

isNil

public boolean isNil()
Specified by:
isNil in interface Expr

isUnknownType

public boolean isUnknownType()
Specified by:
isUnknownType in interface Expr

isInt

public boolean isInt()
Specified by:
isInt in interface Expr

isDouble

public boolean isDouble()
Specified by:
isDouble in interface Expr

isNumber

public boolean isNumber()
Specified by:
isNumber in interface Expr

isString

public boolean isString()
Specified by:
isString in interface Expr

isValue

public boolean isValue()
Specified by:
isValue in interface Expr

isDate

public boolean isDate()
Specified by:
isDate in interface Expr

isObject

public boolean isObject()
Specified by:
isObject in interface Expr

isJava

public boolean isJava()
Specified by:
isJava in interface Expr

isCOM

public boolean isCOM()
Specified by:
isCOM in interface Expr

isFunction

public boolean isFunction()
Specified by:
isFunction in interface Expr

isArray

public boolean isArray()
Specified by:
isArray in interface Expr

isSet

public boolean isSet()
Specified by:
isSet in interface Expr

isStack

public boolean isStack()
Specified by:
isStack in interface Expr

isQueue

public boolean isQueue()
Specified by:
isQueue in interface Expr

isStruct

public boolean isStruct()
Specified by:
isStruct in interface Expr

isComplex

public boolean isComplex()
Specified by:
isComplex in interface Expr

isWebService

public boolean isWebService()
Specified by:
isWebService in interface Expr

isA

public boolean isA(java.lang.String name)
Specified by:
isA in interface Expr

isReadOnly

public boolean isReadOnly()
Specified by:
isReadOnly in interface Expr

eval

public Variable eval()
              throws java.lang.Throwable
Specified by:
eval in interface Expr
Throws:
java.lang.Throwable

getBoolValue

public boolean getBoolValue()
                     throws java.lang.Throwable
Specified by:
getBoolValue in interface Expr
Throws:
java.lang.Throwable

getLongValue

public long getLongValue()
                  throws java.lang.Throwable
Specified by:
getLongValue in interface Expr
Throws:
java.lang.Throwable

getDoubleValue

public double getDoubleValue()
                      throws java.lang.Throwable
Specified by:
getDoubleValue in interface Expr
Throws:
java.lang.Throwable

getStringValue

public java.lang.String getStringValue()
                                throws java.lang.Throwable
Specified by:
getStringValue in interface Expr
Throws:
java.lang.Throwable

getObjectValue

public java.lang.Object getObjectValue()
                                throws java.lang.Throwable
Specified by:
getObjectValue in interface Expr
Throws:
java.lang.Throwable

getDateValue

public java.util.Date getDateValue()
                            throws java.lang.Throwable
Specified by:
getDateValue in interface Expr
Throws:
java.lang.Throwable

reduce

public Expr reduce(java.util.Stack stack)
Specified by:
reduce in interface Expr

optimize

public Expr optimize()
Specified by:
optimize in interface Expr

dump

public void dump(XMLWriter out)
Specified by:
dump in interface XMLDumpable

compareTo

public int compareTo(java.lang.Object o)
Specified by:
compareTo in interface java.lang.Comparable

registerCallable

public static void registerCallable(java.lang.String name,
                                    Script script,
                                    RuntimeGlobalContext rgc)
                             throws java.lang.IllegalAccessException
Throws:
java.lang.IllegalAccessException

getCallable

public static Callable getCallable(java.lang.String name)
                            throws java.lang.IllegalAccessException
Throws:
java.lang.IllegalAccessException