-
- All Known Implementing Classes:
AbstractJSObject
,ScriptObjectMirror
public interface JSObject
This 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 Object
call(Object thiz, Object... args)
Call this object as a JavaScript function.Object
eval(String s)
Evaluate a JavaScript expression.String
getClassName()
ECMA [[Class]] propertydefault Object
getDefaultValue(Class<?> hint)
Implements this object's[[DefaultValue]]
method as per ECMAScript 5.1 section 8.6.2.Object
getMember(String name)
Retrieves a named member of this JavaScript object.Object
getSlot(int index)
Retrieves an indexed member of this JavaScript object.boolean
hasMember(String name)
Does this object have a named member?boolean
hasSlot(int slot)
Does this object have a indexed property?boolean
isArray()
Is this an array object?boolean
isFunction()
Is this a function object?boolean
isInstance(Object instance)
Checking whether the given object is an instance of 'this' object.boolean
isInstanceOf(Object clazz)
Checking whether this object is an instance of the given 'clazz' object.boolean
isStrictFunction()
Is this a 'use strict' function object?Set<String>
keySet()
Returns the set of all property names of this object.Object
newObject(Object... args)
Call this 'constructor' JavaScript function to create a new object.void
removeMember(String name)
Remove a named member from this JavaScript objectvoid
setMember(String name, Object value)
Set a named member in this JavaScript objectvoid
setSlot(int index, Object value)
Set an indexed member in this JavaScript objectdefault double
toNumber()
Deprecated.usegetDefaultValue(Class)
withNumber
hint instead.Collection<Object>
values()
Returns the set of all property values of this object.
-
-
-
Method Detail
-
call
Object call(Object thiz, 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
Object newObject(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
Object eval(String s)
Evaluate a JavaScript expression.- Parameters:
s
- JavaScript expression to evaluate- Returns:
- evaluation result
-
getMember
Object getMember(String name)
Retrieves a named member of this JavaScript object.- Parameters:
name
- of member- Returns:
- member
- Throws:
NullPointerException
- if name is null
-
getSlot
Object getSlot(int index)
Retrieves an indexed member of this JavaScript object.- Parameters:
index
- index slot to retrieve- Returns:
- member
-
hasMember
boolean hasMember(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(String name)
Remove a named member from this JavaScript object- Parameters:
name
- name of the member- Throws:
NullPointerException
- if name is null
-
setMember
void setMember(String name, Object value)
Set a named member in this JavaScript object- Parameters:
name
- name of the membervalue
- value of the member- Throws:
NullPointerException
- if name is null
-
setSlot
void setSlot(int index, Object value)
Set an indexed member in this JavaScript object- Parameters:
index
- index of the member slotvalue
- value of the member
-
keySet
Set<String> keySet()
Returns the set of all property names of this object.- Returns:
- set of property names
-
values
Collection<Object> values()
Returns the set of all property values of this object.- Returns:
- set of property values.
-
isInstance
boolean isInstance(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(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
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)
withNumber
hint instead.Returns this object's numeric value.- Returns:
- this object's numeric value.
-
getDefaultValue
default Object getDefaultValue(Class<?> hint) throws UnsupportedOperationException
Implements this object's[[DefaultValue]]
method as per ECMAScript 5.1 section 8.6.2.- Parameters:
hint
- the type hint. Should be eithernull
,Number.class
orString.class
.- Returns:
- this object's default value.
- Throws:
UnsupportedOperationException
- if the conversion can't be performed. The engine will convert this exception into a JavaScriptTypeError
.
-
-