- java.lang.Object
-
- jdk.nashorn.api.scripting.AbstractJSObject
-
- All Implemented Interfaces:
JSObject
- Direct Known Subclasses:
ScriptObjectMirror
public abstract class AbstractJSObject extends Object implements JSObject
This is the base class for nashorn ScriptObjectMirror class. This class can also be subclassed 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 class.- Since:
- 1.8u40
-
-
Constructor Summary
Constructors Constructor Description AbstractJSObject()The default constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description Objectcall(Object thiz, Object... args)Call this object as a JavaScript function.Objecteval(String s)Evaluate a JavaScript expression.StringgetClassName()ECMA [[Class]] propertystatic ObjectgetDefaultValue(JSObject jsobj, Class<?> hint)Deprecated.useJSObject.getDefaultValue(Class)instead.ObjectgetMember(String name)Retrieves a named member of this JavaScript object.ObjectgetSlot(int index)Retrieves an indexed member of this JavaScript object.booleanhasMember(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(Object instance)Checking whether the given object is an instance of 'this' object.booleanisInstanceOf(Object clazz)Checking whether this object is an instance of the given 'clazz' object.booleanisStrictFunction()Is this a 'use strict' function object?Set<String>keySet()Returns the set of all property names of this object.ObjectnewObject(Object... args)Call this 'constructor' JavaScript function to create a new object.voidremoveMember(String name)Remove a named member from this JavaScript objectvoidsetMember(String name, Object value)Set a named member in this JavaScript objectvoidsetSlot(int index, Object value)Set an indexed member in this JavaScript objectdoubletoNumber()Deprecated.useJSObject.getDefaultValue(Class)withNumberhint instead.Collection<Object>values()Returns the set of all property values of this object.-
Methods inherited from interface jdk.nashorn.api.scripting.JSObject
getDefaultValue
-
-
-
-
Method Detail
-
call
public Object call(Object thiz, Object... args)
Description copied from interface:JSObjectCall this object as a JavaScript function. This is equivalent to 'func.apply(thiz, args)' in JavaScript.
-
newObject
public Object newObject(Object... args)
Description copied from interface:JSObjectCall this 'constructor' JavaScript function to create a new object. This is equivalent to 'new func(arg1, arg2...)' in JavaScript.
-
eval
public Object eval(String s)
Description copied from interface:JSObjectEvaluate a JavaScript expression.
-
getMember
public Object getMember(String name)
Description copied from interface:JSObjectRetrieves a named member of this JavaScript object.
-
getSlot
public Object getSlot(int index)
Description copied from interface:JSObjectRetrieves an indexed member of this JavaScript object.
-
hasMember
public boolean hasMember(String name)
Description copied from interface:JSObjectDoes this object have a named member?
-
hasSlot
public boolean hasSlot(int slot)
Description copied from interface:JSObjectDoes this object have a indexed property?
-
removeMember
public void removeMember(String name)
Description copied from interface:JSObjectRemove a named member from this JavaScript object- Specified by:
removeMemberin interfaceJSObject- Implementation Requirements:
- This implementation is a no-op
- Parameters:
name- name of the member
-
setMember
public void setMember(String name, Object value)
Description copied from interface:JSObjectSet a named member in this JavaScript object
-
setSlot
public void setSlot(int index, Object value)Description copied from interface:JSObjectSet an indexed member in this JavaScript object
-
keySet
public Set<String> keySet()
Description copied from interface:JSObjectReturns the set of all property names of this object.
-
values
public Collection<Object> values()
Description copied from interface:JSObjectReturns the set of all property values of this object.
-
isInstance
public boolean isInstance(Object instance)
Description copied from interface:JSObjectChecking whether the given object is an instance of 'this' object.- Specified by:
isInstancein interfaceJSObject- Implementation Requirements:
- This implementation always returns false
- Parameters:
instance- instance to check- Returns:
- true if the given 'instance' is an instance of this 'function' object
-
isInstanceOf
public boolean isInstanceOf(Object clazz)
Description copied from interface:JSObjectChecking whether this object is an instance of the given 'clazz' object.- Specified by:
isInstanceOfin interfaceJSObject- Parameters:
clazz- clazz to check- Returns:
- true if this object is an instance of the given 'clazz'
-
getClassName
public String getClassName()
Description copied from interface:JSObjectECMA [[Class]] property- Specified by:
getClassNamein interfaceJSObject- Returns:
- ECMA [[Class]] property value of this object
-
isFunction
public boolean isFunction()
Description copied from interface:JSObjectIs this a function object?- Specified by:
isFunctionin interfaceJSObject- Implementation Requirements:
- This implementation always returns false
- Returns:
- if this mirror wraps a ECMAScript function instance
-
isStrictFunction
public boolean isStrictFunction()
Description copied from interface:JSObjectIs this a 'use strict' function object?- Specified by:
isStrictFunctionin interfaceJSObject- Implementation Requirements:
- This implementation always returns false
- Returns:
- true if this mirror represents a ECMAScript 'use strict' function
-
isArray
public boolean isArray()
Description copied from interface:JSObjectIs this an array object?
-
toNumber
@Deprecated public double toNumber()
Deprecated. useJSObject.getDefaultValue(Class)withNumberhint instead.Returns this object's numeric value.
-
getDefaultValue
@Deprecated public static Object getDefaultValue(JSObject jsobj, Class<?> hint)
Deprecated. useJSObject.getDefaultValue(Class)instead.When passed anAbstractJSObject, invokes itsJSObject.getDefaultValue(Class)method. When passed any otherJSObject, it will obtain its[[DefaultValue]]method as per ECMAScript 5.1 section 8.6.2.- Parameters:
jsobj- theJSObjectwhose[[DefaultValue]]is obtained.hint- the type hint. Should be eithernull,Number.classorString.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.
-
-