org.mozilla.javascript
Class Synchronizer

java.lang.Object
  extended by org.mozilla.javascript.Delegator
      extended by org.mozilla.javascript.Synchronizer
All Implemented Interfaces:
Callable, Function, Scriptable

public class Synchronizer
extends org.mozilla.javascript.Delegator

This class provides support for implementing Java-style synchronized methods in Javascript. Synchronized functions are created from ordinary Javascript functions by the Synchronizer constructor, e.g. new Packages.org.mozilla.javascript.Synchronizer(fun). The resulting object is a function that establishes an exclusive lock on the this object of its invocation. The Rhino shell provides a short-cut for the creation of synchronized methods: sync(fun) has the same effect as calling the above constructor.

Author:
Matthias Radestock
See Also:
Delegator

Field Summary
 
Fields inherited from class org.mozilla.javascript.Delegator
obj
 
Fields inherited from interface org.mozilla.javascript.Scriptable
NOT_FOUND
 
Constructor Summary
Synchronizer(Scriptable obj)
          Create a new synchronized function from an existing one.
 
Method Summary
 java.lang.Object call(Context cx, Scriptable scope, Scriptable thisObj, java.lang.Object[] args)
          Call the function.
 
Methods inherited from class org.mozilla.javascript.Delegator
construct, delete, delete, get, get, getClassName, getDefaultValue, getDelegee, getIds, getParentScope, getPrototype, has, has, hasInstance, newInstance, put, put, setDelegee, setParentScope, setPrototype
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Synchronizer

public Synchronizer(Scriptable obj)
Create a new synchronized function from an existing one.

Parameters:
obj - the existing function
Method Detail

call

public java.lang.Object call(Context cx,
                             Scriptable scope,
                             Scriptable thisObj,
                             java.lang.Object[] args)
Description copied from interface: Function
Call the function. Note that the array of arguments is not guaranteed to have length greater than 0.

Specified by:
call in interface Callable
Specified by:
call in interface Function
Overrides:
call in class org.mozilla.javascript.Delegator
Parameters:
cx - the current Context for this thread
scope - the scope to execute the function relative to. This is set to the value returned by getParentScope() except when the function is called from a closure.
thisObj - the JavaScript this object
args - the array of arguments
Returns:
the result of the call
See Also:
Function.call(org.mozilla.javascript.Context, org.mozilla.javascript.Scriptable, org.mozilla.javascript.Scriptable, java.lang.Object[])