net.sourceforge.htmlunit.corejs.javascript.tools.shell
Class Global

java.lang.Object
  extended by net.sourceforge.htmlunit.corejs.javascript.ScriptableObject
      extended by net.sourceforge.htmlunit.corejs.javascript.IdScriptableObject
          extended by net.sourceforge.htmlunit.corejs.javascript.TopLevel
              extended by net.sourceforge.htmlunit.corejs.javascript.ImporterTopLevel
                  extended by net.sourceforge.htmlunit.corejs.javascript.tools.shell.Global
All Implemented Interfaces:
java.io.Serializable, ConstProperties, DebuggableObject, IdFunctionCall, Scriptable

public class Global
extends ImporterTopLevel

This class provides for sharing functions across multiple threads. This is of particular interest to server applications.

Author:
Norris Boyd
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class net.sourceforge.htmlunit.corejs.javascript.TopLevel
TopLevel.Builtins
 
Field Summary
 
Fields inherited from class net.sourceforge.htmlunit.corejs.javascript.ScriptableObject
CONST, DONTENUM, EMPTY, PERMANENT, READONLY, UNINITIALIZED_CONST
 
Fields inherited from interface net.sourceforge.htmlunit.corejs.javascript.Scriptable
NOT_FOUND
 
Constructor Summary
Global()
           
Global(Context cx)
           
 
Method Summary
static void defineClass(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj)
          Load a Java class that defines a JavaScript object using the conventions outlined in ScriptableObject.defineClass.
static java.lang.Object deserialize(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj)
           
static java.lang.Object doctest(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj)
          Example: doctest("js> function f() {\n > return 3;\n > }\njs> f();\n3\n"); returns 2 (since 2 tests were executed).
static void gc(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj)
           
 ShellConsole getConsole(java.nio.charset.Charset cs)
           
 java.io.PrintStream getErr()
           
 java.io.InputStream getIn()
           
 java.io.PrintStream getOut()
           
 java.lang.String[] getPrompts(Context cx)
           
static void help(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj)
          Print a help message.
 void init(Context cx)
           
 void init(ContextFactory factory)
           
 void initQuitAction(QuitAction quitAction)
          Set the action to call from quit().
 Require installRequire(Context cx, java.util.List<java.lang.String> modulePath, boolean sandboxed)
           
 boolean isInitialized()
           
static void load(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj)
          Load and execute a set of JavaScript source files.
static void loadClass(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj)
          Load and execute a script compiled to a class file.
static java.lang.Object print(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj)
          Print the string values of its arguments.
static void quit(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj)
          Call embedding-specific quit action passing its argument as int32 exit code.
static java.lang.Object readFile(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj)
          The readFile reads the given file content and convert it to a string using the specified character coding or default character coding if explicit coding argument is not given.
static java.lang.Object readUrl(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj)
          The readUrl opens connection to the given URL, read all its data and converts them to a string using the specified character coding or default character coding if explicit coding argument is not given.
static java.lang.Object runCommand(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj)
          Execute the specified command with the given argument and options as a separate process and return the exit status of the process.
 int runDoctest(Context cx, Scriptable scope, java.lang.String session, java.lang.String sourceName, int lineNumber)
           
static void seal(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj)
          The seal function seals all supplied arguments.
static void serialize(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj)
           
 void setErr(java.io.PrintStream err)
           
 void setIn(java.io.InputStream in)
           
 void setOut(java.io.PrintStream out)
           
 void setSealedStdLib(boolean value)
           
static java.lang.Object spawn(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj)
          The spawn function runs a given function or script in a different thread.
static java.lang.Object sync(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj)
          The sync function creates a synchronized function (in the sense of a Java synchronized method) from an existing function.
static java.lang.Object toint32(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj)
          Convert the argument to int32 number.
static double version(Context cx, Scriptable thisObj, java.lang.Object[] args, Function funObj)
          Get and set the language version.
 
Methods inherited from class net.sourceforge.htmlunit.corejs.javascript.ImporterTopLevel
execIdCall, findPrototypeId, get, getClassName, has, importPackage, init, initPrototypeId, initStandardObjects
 
Methods inherited from class net.sourceforge.htmlunit.corejs.javascript.TopLevel
cacheBuiltins, getBuiltinCtor, getBuiltinCtor, getBuiltinPrototype, getBuiltinPrototype
 
Methods inherited from class net.sourceforge.htmlunit.corejs.javascript.IdScriptableObject
activatePrototypeMap, addIdFunctionProperty, defaultGet, defaultPut, defineOwnProperty, delete, exportAsJSClass, fillConstructorProperties, findInstanceIdInfo, getAttributes, getInstanceIdName, getInstanceIdValue, getMaxInstanceId, getOwnPropertyDescriptor, hasPrototypeMap, incompatibleCallError, initPrototypeConstructor, initPrototypeMethod, initPrototypeValue, instanceIdInfo, put, setAttributes, setInstanceIdAttributes, setInstanceIdValue
 
Methods inherited from class net.sourceforge.htmlunit.corejs.javascript.ScriptableObject
applyDescriptorToAttributeBitset, associateValue, avoidObjectDetection, buildDataDescriptor, callMethod, callMethod, checkPropertyChange, checkPropertyDefinition, defineClass, defineClass, defineClass, defineConst, defineConstProperty, defineFunctionProperties, defineOwnProperties, defineOwnProperty, defineProperty, defineProperty, defineProperty, defineProperty, delete, deleteProperty, deleteProperty, ensureScriptable, ensureScriptableObject, equivalentValues, get, get, getAllIds, getArrayPrototype, getAssociatedValue, getAttributes, getAttributes, getAttributes, getClassPrototype, getDefaultValue, getDefaultValue, getFunctionPrototype, getGetterOrSetter, getIds, getObjectPrototype, getParentScope, getProperty, getProperty, getPropertyIds, getPrototype, getSlot, getTopLevelScope, getTopScopeValue, getTypedProperty, getTypedProperty, getTypeOf, has, hasInstance, hasProperty, hasProperty, isAccessorDescriptor, isConst, isDataDescriptor, isEmpty, isExtensible, isFalse, isGenericDescriptor, isGetterOrSetter, isReadOnlySettable, isSealed, isTrue, preventExtensions, put, putConst, putConstProperty, putProperty, putProperty, redefineProperty, sameValue, sealObject, setAttributes, setAttributes, setAttributes, setGetterOrSetter, setParentScope, setPrototype, size
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Global

public Global()

Global

public Global(Context cx)
Method Detail

isInitialized

public boolean isInitialized()

initQuitAction

public void initQuitAction(QuitAction quitAction)
Set the action to call from quit().


init

public void init(ContextFactory factory)

init

public void init(Context cx)

installRequire

public Require installRequire(Context cx,
                              java.util.List<java.lang.String> modulePath,
                              boolean sandboxed)

help

public static void help(Context cx,
                        Scriptable thisObj,
                        java.lang.Object[] args,
                        Function funObj)
Print a help message. This method is defined as a JavaScript function.


gc

public static void gc(Context cx,
                      Scriptable thisObj,
                      java.lang.Object[] args,
                      Function funObj)

print

public static java.lang.Object print(Context cx,
                                     Scriptable thisObj,
                                     java.lang.Object[] args,
                                     Function funObj)
Print the string values of its arguments. This method is defined as a JavaScript function. Note that its arguments are of the "varargs" form, which allows it to handle an arbitrary number of arguments supplied to the JavaScript function.


quit

public static void quit(Context cx,
                        Scriptable thisObj,
                        java.lang.Object[] args,
                        Function funObj)
Call embedding-specific quit action passing its argument as int32 exit code. This method is defined as a JavaScript function.


version

public static double version(Context cx,
                             Scriptable thisObj,
                             java.lang.Object[] args,
                             Function funObj)
Get and set the language version. This method is defined as a JavaScript function.


load

public static void load(Context cx,
                        Scriptable thisObj,
                        java.lang.Object[] args,
                        Function funObj)
Load and execute a set of JavaScript source files. This method is defined as a JavaScript function.


defineClass

public static void defineClass(Context cx,
                               Scriptable thisObj,
                               java.lang.Object[] args,
                               Function funObj)
                        throws java.lang.IllegalAccessException,
                               java.lang.InstantiationException,
                               java.lang.reflect.InvocationTargetException
Load a Java class that defines a JavaScript object using the conventions outlined in ScriptableObject.defineClass.

This method is defined as a JavaScript function.

Throws:
java.lang.IllegalAccessException - if access is not available to a reflected class member
java.lang.InstantiationException - if unable to instantiate the named class
java.lang.reflect.InvocationTargetException - if an exception is thrown during execution of methods of the named class
See Also:
ScriptableObject.defineClass(Scriptable,Class)

loadClass

public static void loadClass(Context cx,
                             Scriptable thisObj,
                             java.lang.Object[] args,
                             Function funObj)
                      throws java.lang.IllegalAccessException,
                             java.lang.InstantiationException
Load and execute a script compiled to a class file.

This method is defined as a JavaScript function. When called as a JavaScript function, a single argument is expected. This argument should be the name of a class that implements the Script interface, as will any script compiled by jsc.

Throws:
java.lang.IllegalAccessException - if access is not available to the class
java.lang.InstantiationException - if unable to instantiate the named class

serialize

public static void serialize(Context cx,
                             Scriptable thisObj,
                             java.lang.Object[] args,
                             Function funObj)
                      throws java.io.IOException
Throws:
java.io.IOException

deserialize

public static java.lang.Object deserialize(Context cx,
                                           Scriptable thisObj,
                                           java.lang.Object[] args,
                                           Function funObj)
                                    throws java.io.IOException,
                                           java.lang.ClassNotFoundException
Throws:
java.io.IOException
java.lang.ClassNotFoundException

getPrompts

public java.lang.String[] getPrompts(Context cx)

doctest

public static java.lang.Object doctest(Context cx,
                                       Scriptable thisObj,
                                       java.lang.Object[] args,
                                       Function funObj)
Example: doctest("js> function f() {\n > return 3;\n > }\njs> f();\n3\n"); returns 2 (since 2 tests were executed).


runDoctest

public int runDoctest(Context cx,
                      Scriptable scope,
                      java.lang.String session,
                      java.lang.String sourceName,
                      int lineNumber)

spawn

public static java.lang.Object spawn(Context cx,
                                     Scriptable thisObj,
                                     java.lang.Object[] args,
                                     Function funObj)
The spawn function runs a given function or script in a different thread. js> function g() { a = 7; } js> a = 3; 3 js> spawn(g) Thread[Thread-1,5,main] js> a 3


sync

public static java.lang.Object sync(Context cx,
                                    Scriptable thisObj,
                                    java.lang.Object[] args,
                                    Function funObj)
The sync function creates a synchronized function (in the sense of a Java synchronized method) from an existing function. The new function synchronizes on the the second argument if it is defined, or otherwise the this object of its invocation. js> var o = { f : sync(function(x) { print("entry"); Packages.java.lang.Thread.sleep(x*1000); print("exit"); })}; js> spawn(function() {o.f(5);}); Thread[Thread-0,5,main] entry js> spawn(function() {o.f(5);}); Thread[Thread-1,5,main] js> exit entry exit


runCommand

public static java.lang.Object runCommand(Context cx,
                                          Scriptable thisObj,
                                          java.lang.Object[] args,
                                          Function funObj)
                                   throws java.io.IOException
Execute the specified command with the given argument and options as a separate process and return the exit status of the process.

Usage:

 runCommand(command)
 runCommand(command, arg1, ..., argN)
 runCommand(command, arg1, ..., argN, options)
 
All except the last arguments to runCommand are converted to strings and denote command name and its arguments. If the last argument is a JavaScript object, it is an option object. Otherwise it is converted to string denoting the last argument and options objects assumed to be empty. The following properties of the option object are processed:

Throws:
java.io.IOException

seal

public static void seal(Context cx,
                        Scriptable thisObj,
                        java.lang.Object[] args,
                        Function funObj)
The seal function seals all supplied arguments.


readFile

public static java.lang.Object readFile(Context cx,
                                        Scriptable thisObj,
                                        java.lang.Object[] args,
                                        Function funObj)
                                 throws java.io.IOException
The readFile reads the given file content and convert it to a string using the specified character coding or default character coding if explicit coding argument is not given.

Usage:

 readFile(filePath)
 readFile(filePath, charCoding)
 
The first form converts file's context to string using the default character coding.

Throws:
java.io.IOException

readUrl

public static java.lang.Object readUrl(Context cx,
                                       Scriptable thisObj,
                                       java.lang.Object[] args,
                                       Function funObj)
                                throws java.io.IOException
The readUrl opens connection to the given URL, read all its data and converts them to a string using the specified character coding or default character coding if explicit coding argument is not given.

Usage:

 readUrl(url)
 readUrl(url, charCoding)
 
The first form converts file's context to string using the default charCoding.

Throws:
java.io.IOException

toint32

public static java.lang.Object toint32(Context cx,
                                       Scriptable thisObj,
                                       java.lang.Object[] args,
                                       Function funObj)
Convert the argument to int32 number.


getConsole

public ShellConsole getConsole(java.nio.charset.Charset cs)

getIn

public java.io.InputStream getIn()

setIn

public void setIn(java.io.InputStream in)

getOut

public java.io.PrintStream getOut()

setOut

public void setOut(java.io.PrintStream out)

getErr

public java.io.PrintStream getErr()

setErr

public void setErr(java.io.PrintStream err)

setSealedStdLib

public void setSealedStdLib(boolean value)