-
- All Known Implementing Classes:
AbstractJSObject,ScriptObjectMirror
public interface JSObjectThis interface can be implemented by an arbitrary Java class. Nashorn will treat objects of such classes just like nashorn script objects. Usual nashorn operations like obj[i], obj.foo, obj.func(), delete obj.foo will be delegated to appropriate method call of this interface.- Since:
- 1.8u40
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description java.lang.Objectcall(java.lang.Object thiz, java.lang.Object... args)Call this object as a JavaScript function.java.lang.Objecteval(java.lang.String s)Evaluate a JavaScript expression.java.lang.StringgetClassName()ECMA [[Class]] propertydefault java.lang.ObjectgetDefaultValue(java.lang.Class<?> hint)Implements this object's[[DefaultValue]]method as per ECMAScript 5.1 section 8.6.2.java.lang.ObjectgetMember(java.lang.String name)Retrieves a named member of this JavaScript object.java.lang.ObjectgetSlot(int index)Retrieves an indexed member of this JavaScript object.booleanhasMember(java.lang.String name)Does this object have a named member?booleanhasSlot(int slot)Does this object have a indexed property?booleanisArray()Is this an array object?booleanisFunction()Is this a function object?booleanisInstance(java.lang.Object instance)Checking whether the given object is an instance of 'this' object.booleanisInstanceOf(java.lang.Object clazz)Checking whether this object is an instance of the given 'clazz' object.booleanisStrictFunction()Is this a 'use strict' function object?java.util.Set<java.lang.String>keySet()Returns the set of all property names of this object.java.lang.ObjectnewObject(java.lang.Object... args)Call this 'constructor' JavaScript function to create a new object.voidremoveMember(java.lang.String name)Remove a named member from this JavaScript objectvoidsetMember(java.lang.String name, java.lang.Object value)Set a named member in this JavaScript objectvoidsetSlot(int index, java.lang.Object value)Set an indexed member in this JavaScript objectdefault doubletoNumber()Deprecated.usegetDefaultValue(Class)withNumberhint instead.java.util.Collection<java.lang.Object>values()Returns the set of all property values of this object.
-
-
-
Method Detail
-
call
java.lang.Object call(java.lang.Object thiz, java.lang.Object... args)Call this object as a JavaScript function. This is equivalent to 'func.apply(thiz, args)' in JavaScript.- Parameters:
thiz- 'this' object to be passed to the function. This may be null.args- arguments to method- Returns:
- result of call
-
newObject
java.lang.Object newObject(java.lang.Object... args)
Call this 'constructor' JavaScript function to create a new object. This is equivalent to 'new func(arg1, arg2...)' in JavaScript.- Parameters:
args- arguments to method- Returns:
- result of constructor call
-
eval
java.lang.Object eval(java.lang.String s)
Evaluate a JavaScript expression.- Parameters:
s- JavaScript expression to evaluate- Returns:
- evaluation result
-
getMember
java.lang.Object getMember(java.lang.String name)
Retrieves a named member of this JavaScript object.- Parameters:
name- of member- Returns:
- member
- Throws:
java.lang.NullPointerException- if name is null
-
getSlot
java.lang.Object getSlot(int index)
Retrieves an indexed member of this JavaScript object.- Parameters:
index- index slot to retrieve- Returns:
- member
-
hasMember
boolean hasMember(java.lang.String name)
Does this object have a named member?- Parameters:
name- name of member- Returns:
- true if this object has a member of the given name
-
hasSlot
boolean hasSlot(int slot)
Does this object have a indexed property?- Parameters:
slot- index to check- Returns:
- true if this object has a slot
-
removeMember
void removeMember(java.lang.String name)
Remove a named member from this JavaScript object- Parameters:
name- name of the member- Throws:
java.lang.NullPointerException- if name is null
-
setMember
void setMember(java.lang.String name, java.lang.Object value)Set a named member in this JavaScript object- Parameters:
name- name of the membervalue- value of the member- Throws:
java.lang.NullPointerException- if name is null
-
setSlot
void setSlot(int index, java.lang.Object value)Set an indexed member in this JavaScript object- Parameters:
index- index of the member slotvalue- value of the member
-
keySet
java.util.Set<java.lang.String> keySet()
Returns the set of all property names of this object.- Returns:
- set of property names
-
values
java.util.Collection<java.lang.Object> values()
Returns the set of all property values of this object.- Returns:
- set of property values.
-
isInstance
boolean isInstance(java.lang.Object instance)
Checking whether the given object is an instance of 'this' object.- Parameters:
instance- instance to check- Returns:
- true if the given 'instance' is an instance of this 'function' object
-
isInstanceOf
boolean isInstanceOf(java.lang.Object clazz)
Checking whether this object is an instance of the given 'clazz' object.- Parameters:
clazz- clazz to check- Returns:
- true if this object is an instance of the given 'clazz'
-
getClassName
java.lang.String getClassName()
ECMA [[Class]] property- Returns:
- ECMA [[Class]] property value of this object
-
isFunction
boolean isFunction()
Is this a function object?- Returns:
- if this mirror wraps a ECMAScript function instance
-
isStrictFunction
boolean isStrictFunction()
Is this a 'use strict' function object?- Returns:
- true if this mirror represents a ECMAScript 'use strict' function
-
isArray
boolean isArray()
Is this an array object?- Returns:
- if this mirror wraps a ECMAScript array object
-
toNumber
@Deprecated default double toNumber()
Deprecated.usegetDefaultValue(Class)withNumberhint instead.Returns this object's numeric value.- Returns:
- this object's numeric value.
-
getDefaultValue
default java.lang.Object getDefaultValue(java.lang.Class<?> hint) throws java.lang.UnsupportedOperationExceptionImplements this object's[[DefaultValue]]method as per ECMAScript 5.1 section 8.6.2.- Parameters:
hint- the type hint. Should be eithernull,Number.classorString.class.- Returns:
- this object's default value.
- Throws:
java.lang.UnsupportedOperationException- if the conversion can't be performed. The engine will convert this exception into a JavaScriptTypeError.
-
-