ScriptObjectMirror (Java SE 14 & JDK 14)
Description: declaration: module: jdk.scripting.nashorn, package: jdk.nashorn.api.scripting, class: ScriptObjectMirror
Keywords: jdk.nashorn.api.scripting.ScriptObjectMirror class

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

  Modifier and Type | Method | Description
  --- | --- | ---
  `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.
  `double` | `toNumber()` | Deprecated.
  `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, 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 Details

  - ### 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.

  - ### toNumber

    @Deprecated public double toNumber()
    Deprecated.
    Description copied from class: `AbstractJSObject`
    Returns this object's numeric value.
    Specified by:
      `toNumber` in interface `JSObject`
    Overrides:
      `toNumber` in class `AbstractJSObject`
    Returns:
      this object's numeric value.