net.sourceforge.htmlunit.corejs.javascript
Class Synchronizer
java.lang.Object
net.sourceforge.htmlunit.corejs.javascript.Delegator
net.sourceforge.htmlunit.corejs.javascript.Synchronizer
- All Implemented Interfaces:
- Callable, Function, Scriptable
public class Synchronizer
- extends 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.net.sourceforge.htmlunit.corejs.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
| Fields inherited from class net.sourceforge.htmlunit.corejs.javascript.Delegator |
obj |
| Fields inherited from interface net.sourceforge.htmlunit.corejs.javascript.Scriptable |
NOT_FOUND |
|
Constructor Summary |
Synchronizer(Scriptable obj)
Create a new synchronized function from an existing one. |
Synchronizer(Scriptable obj,
java.lang.Object syncObject)
Create a new synchronized function from an existing one using an explicit
object as synchronization object. |
| Methods inherited from class net.sourceforge.htmlunit.corejs.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 |
Synchronizer
public Synchronizer(Scriptable obj)
- Create a new synchronized function from an existing one.
- Parameters:
obj - the existing function
Synchronizer
public Synchronizer(Scriptable obj,
java.lang.Object syncObject)
- Create a new synchronized function from an existing one using an explicit
object as synchronization object.
- Parameters:
obj - the existing functionsyncObject - the object to synchronized on
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 Delegator
- Parameters:
cx - the current Context for this threadscope - 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 objectargs - the array of arguments
- Returns:
- the result of the call
- See Also:
Function.call(net.sourceforge.htmlunit.corejs.javascript.Context, net.sourceforge.htmlunit.corejs.javascript.Scriptable, net.sourceforge.htmlunit.corejs.javascript.Scriptable, java.lang.Object[])