Module jdk.scripting.nashorn
Package jdk.nashorn.api.scripting

## Class ScriptObjectMirror

- java.lang.Object
- - jdk.nashorn.api.scripting.AbstractJSObject
  - - jdk.nashorn.api.scripting.ScriptObjectMirror

All Implemented Interfaces:
  `Map<String,​Object>`, `Bindings`, `JSObject`

    @Deprecated(since="11",
                forRemoval=true)
    public final class ScriptObjectMirror
    extends AbstractJSObject
    implements Bindings

Deprecated, for removal: This API element is subject to removal in a future version.
Nashorn JavaScript script engine and APIs, and the jjs tool are deprecated with the intent to remove them in a future release.
Mirror object that wraps a given Nashorn Script object.

Since:
  1.8u40

### Nested Class Summary

### Nested classes/interfaces declared in interface java.util.Map

`Map.Entry<K,​V>`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
`Object` `callMember​(String functionName, Object... args)` Deprecated, for removal: This API element is subject to removal in a future version. Call member function
`boolean` `delete​(Object key)` Deprecated, for removal: This API element is subject to removal in a future version. Delete a property from this object.
`ScriptObjectMirror` `freeze()` Deprecated, for removal: This API element is subject to removal in a future version. ECMA 15.2.39 - freeze implementation.
`String[]` `getOwnKeys​(boolean all)` Deprecated, for removal: This API element is subject to removal in a future version. return an array of own property keys associated with the object.
`Object` `getOwnPropertyDescriptor​(String key)` Deprecated, for removal: This API element is subject to removal in a future version. ECMA 8.12.1 [[GetOwnProperty]] (P)
`Object` `getProto()` Deprecated, for removal: This API element is subject to removal in a future version. Return the __proto__ of this object.
`static boolean` `identical​(Object obj1, Object obj2)` Deprecated, for removal: This API element is subject to removal in a future version. Are the given objects mirrors to same underlying object?
`boolean` `isExtensible()` Deprecated, for removal: This API element is subject to removal in a future version. Check if this script object is extensible
`boolean` `isFrozen()` Deprecated, for removal: This API element is subject to removal in a future version. Check whether this script object is frozen
`boolean` `isSealed()` Deprecated, for removal: This API element is subject to removal in a future version. Check whether this script object is sealed
`static boolean` `isUndefined​(Object obj)` Deprecated, for removal: This API element is subject to removal in a future version. Utility to check if given object is ECMAScript undefined value
`ScriptObjectMirror` `preventExtensions()` Deprecated, for removal: This API element is subject to removal in a future version. Flag this script object as non extensible
`ScriptObjectMirror` `seal()` Deprecated, for removal: This API element is subject to removal in a future version. ECMAScript 15.2.3.8 - seal implementation
`void` `setIndexedPropertiesToExternalArrayData​(ByteBuffer buf)` Deprecated, for removal: This API element is subject to removal in a future version. Nashorn extension: setIndexedPropertiesToExternalArrayData.
`void` `setProto​(Object proto)` Deprecated, for removal: This API element is subject to removal in a future version. Set the __proto__ of this object.
`<T> T` `to​(Class<T> type)` Deprecated, for removal: This API element is subject to removal in a future version. Utility to convert this script object to the given type.
`static Object` `unwrap​(Object obj, Object homeGlobal)` Deprecated, for removal: This API element is subject to removal in a future version. Unwrap a script object mirror if needed.
`static Object[]` `unwrapArray​(Object[] args, Object homeGlobal)` Deprecated, for removal: This API element is subject to removal in a future version. Unwrap an array of script object mirrors if needed.
`static Object` `wrap​(Object obj, Object homeGlobal)` Deprecated, for removal: This API element is subject to removal in a future version. Make a script object mirror on given object if needed.
`static Object[]` `wrapArray​(Object[] args, Object homeGlobal)` Deprecated, for removal: This API element is subject to removal in a future version. Wrap an array of object to script object mirrors if needed.
`static Object` `wrapAsJSONCompatible​(Object obj, Object homeGlobal)` Deprecated, for removal: This API element is subject to removal in a future version. Make a script object mirror on given object if needed.

### Methods declared in class jdk.nashorn.api.scripting.AbstractJSObject

`call, eval, getDefaultValue, getMember, getSlot, hasMember, hasSlot, isArray, isFunction, isInstance, isStrictFunction, keySet, newObject, removeMember, setMember, setSlot, toNumber, values`

### Methods declared in class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods declared in interface javax.script.Bindings

`containsKey, get, put, putAll, remove`

### Methods declared in interface jdk.nashorn.api.scripting.JSObject

`getClassName, getDefaultValue, isInstanceOf`

### Methods declared in interface java.util.Map

`clear, compute, computeIfAbsent, computeIfPresent, containsValue, entrySet, equals, forEach, getOrDefault, hashCode, isEmpty, keySet, merge, putIfAbsent, remove, replace, replace, replaceAll, size, values`

### Method Detail

#### callMember

    public Object callMember​(String functionName,
                             Object... args)

Deprecated, for removal: This API element is subject to removal in a future version.
Call member function

Parameters:
  `functionName` - function name
  `args` - arguments
Returns:
  return value of function

#### setIndexedPropertiesToExternalArrayData

    public void setIndexedPropertiesToExternalArrayData​(ByteBuffer buf)

Deprecated, for removal: This API element is subject to removal in a future version.
Nashorn extension: setIndexedPropertiesToExternalArrayData. set indexed properties be exposed from a given nio ByteBuffer.

Parameters:
  `buf` - external buffer - should be a nio ByteBuffer

#### delete

    public boolean delete​(Object key)

Deprecated, for removal: This API element is subject to removal in a future version.
Delete a property from this object.

Parameters:
  `key` - the property to be deleted
Returns:
  if the delete was successful or not

#### getProto

    public Object getProto()

Deprecated, for removal: This API element is subject to removal in a future version.
Return the __proto__ of this object.

Returns:
  __proto__ object.

#### setProto

    public void setProto​(Object proto)

Deprecated, for removal: This API element is subject to removal in a future version.
Set the __proto__ of this object.

Parameters:
  `proto` - new proto for this object

#### getOwnPropertyDescriptor

    public Object getOwnPropertyDescriptor​(String key)

Deprecated, for removal: This API element is subject to removal in a future version.
ECMA 8.12.1 [[GetOwnProperty]] (P)

Parameters:
  `key` - property key
Returns:
  Returns the Property Descriptor of the named own property of this object, or undefined if absent.

#### getOwnKeys

    public String[] getOwnKeys​(boolean all)

Deprecated, for removal: This API element is subject to removal in a future version.
return an array of own property keys associated with the object.

Parameters:
  `all` - True if to include non-enumerable keys.
Returns:
  Array of keys.

#### preventExtensions

    public ScriptObjectMirror preventExtensions()

Deprecated, for removal: This API element is subject to removal in a future version.
Flag this script object as non extensible

Returns:
  the object after being made non extensible

#### isExtensible

    public boolean isExtensible()

Deprecated, for removal: This API element is subject to removal in a future version.
Check if this script object is extensible

Returns:
  true if extensible

#### seal

    public ScriptObjectMirror seal()

Deprecated, for removal: This API element is subject to removal in a future version.
ECMAScript 15.2.3.8 - seal implementation

Returns:
  the sealed script object

#### isSealed

    public boolean isSealed()

Deprecated, for removal: This API element is subject to removal in a future version.
Check whether this script object is sealed

Returns:
  true if sealed

#### freeze

    public ScriptObjectMirror freeze()

Deprecated, for removal: This API element is subject to removal in a future version.
ECMA 15.2.39 - freeze implementation. Freeze this script object

Returns:
  the frozen script object

#### isFrozen

    public boolean isFrozen()

Deprecated, for removal: This API element is subject to removal in a future version.
Check whether this script object is frozen

Returns:
  true if frozen

#### isUndefined

    public static boolean isUndefined​(Object obj)

Deprecated, for removal: This API element is subject to removal in a future version.
Utility to check if given object is ECMAScript undefined value

Parameters:
  `obj` - object to check
Returns:
  true if 'obj' is ECMAScript undefined value

#### to

    public <T> T to​(Class<T> type)

Deprecated, for removal: This API element is subject to removal in a future version.
Utility to convert this script object to the given type.

Type Parameters:
  `T` - destination type to convert to
Parameters:
  `type` - destination type to convert to
Returns:
  converted object

#### wrap

    public static Object wrap​(Object obj,
                              Object homeGlobal)

Deprecated, for removal: This API element is subject to removal in a future version.
Make a script object mirror on given object if needed.

Parameters:
  `obj` - object to be wrapped/converted
  `homeGlobal` - global to which this object belongs.
Returns:
  wrapped/converted object

#### wrapAsJSONCompatible

    public static Object wrapAsJSONCompatible​(Object obj,
                                              Object homeGlobal)

Deprecated, for removal: This API element is subject to removal in a future version.
Make a script object mirror on given object if needed. The created wrapper will implement the Java `List` interface if `obj` is a JavaScript `Array` object; this is compatible with Java JSON libraries expectations. Arrays retrieved through its properties (transitively) will also implement the list interface.

Parameters:
  `obj` - object to be wrapped/converted
  `homeGlobal` - global to which this object belongs.
Returns:
  wrapped/converted object

#### unwrap

    public static Object unwrap​(Object obj,
                                Object homeGlobal)

Deprecated, for removal: This API element is subject to removal in a future version.
Unwrap a script object mirror if needed.

Parameters:
  `obj` - object to be unwrapped
  `homeGlobal` - global to which this object belongs
Returns:
  unwrapped object

#### wrapArray

    public static Object[] wrapArray​(Object[] args,
                                     Object homeGlobal)

Deprecated, for removal: This API element is subject to removal in a future version.
Wrap an array of object to script object mirrors if needed.

Parameters:
  `args` - array to be unwrapped
  `homeGlobal` - global to which this object belongs
Returns:
  wrapped array

#### unwrapArray

    public static Object[] unwrapArray​(Object[] args,
                                       Object homeGlobal)

Deprecated, for removal: This API element is subject to removal in a future version.
Unwrap an array of script object mirrors if needed.

Parameters:
  `args` - array to be unwrapped
  `homeGlobal` - global to which this object belongs
Returns:
  unwrapped array

#### identical

    public static boolean identical​(Object obj1,
                                    Object obj2)

Deprecated, for removal: This API element is subject to removal in a future version.
Are the given objects mirrors to same underlying object?

Parameters:
  `obj1` - first object
  `obj2` - second object
Returns:
  true if obj1 and obj2 are identical script objects or mirrors of it.