XMLObject (Rhino)
Date: 2018-10-23

org.mozilla.javascript.xml

## Class XMLObject

- java.lang.Object
- - org.mozilla.javascript.ScriptableObject
  - - org.mozilla.javascript.IdScriptableObject
    - - org.mozilla.javascript.xml.XMLObject

- All Implemented Interfaces:
    java.io.Serializable, ConstProperties, DebuggableObject, IdFunctionCall, Scriptable, SymbolScriptable

      public abstract class XMLObject
      extends IdScriptableObject

  This Interface describes what all XML objects (XML, XMLList) should have in common.
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.mozilla.javascript.ScriptableObject

      `ScriptableObject.KeyComparator`

  - ### Field Summary

    - ### Fields inherited from class org.mozilla.javascript.ScriptableObject

      `CONST, DONTENUM, EMPTY, PERMANENT, READONLY, UNINITIALIZED_CONST`

    - ### Fields inherited from interface org.mozilla.javascript.Scriptable

      `NOT_FOUND`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `XMLObject()`
    `XMLObject(Scriptable scope, Scriptable prototype)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.Object` | `addValues(Context cx, boolean thisIsLeft, java.lang.Object value)` Custom `+` operator.
    `abstract boolean` | `delete(Context cx, java.lang.Object id)` Implementation of ECMAScript [[Delete]].
    `abstract NativeWith` | `enterDotQuery(Scriptable scope)` Wrap this object into NativeWith to implement the .() query.
    `abstract NativeWith` | `enterWith(Scriptable scope)` Wrap this object into NativeWith to implement the with statement.
    `abstract java.lang.Object` | `get(Context cx, java.lang.Object id)` Implementation of ECMAScript [[Get]].
    `abstract Scriptable` | `getExtraMethodSource(Context cx)` Return an additional object to look for methods that runtime should consider during method search.
    `abstract java.lang.Object` | `getFunctionProperty(Context cx, int id)`
    `abstract java.lang.Object` | `getFunctionProperty(Context cx, java.lang.String name)`
    `java.lang.String` | `getTypeOf()` Gets the value returned by calling the typeof operator on this object.
    `abstract boolean` | `has(Context cx, java.lang.Object id)` Implementation of ECMAScript [[Has]].
    `abstract Ref` | `memberRef(Context cx, java.lang.Object elem, int memberTypeFlags)` Generic reference to implement x.@y, x..y etc.
    `abstract Ref` | `memberRef(Context cx, java.lang.Object namespace, java.lang.Object elem, int memberTypeFlags)` Generic reference to implement x::ns, x.@ns::y, x..@ns::y etc.
    `abstract void` | `put(Context cx, java.lang.Object id, java.lang.Object value)` Implementation of ECMAScript [[Put]].

    - ### Methods inherited from class org.mozilla.javascript.IdScriptableObject

      `activatePrototypeMap, addIdFunctionProperty, defaultGet, defaultHas, defaultPut, defineOwnProperty, delete, delete, execIdCall, exportAsJSClass, fillConstructorProperties, findInstanceIdInfo, findInstanceIdInfo, findPrototypeId, findPrototypeId, get, get, getAttributes, getInstanceIdName, getInstanceIdValue, getMaxInstanceId, getOwnPropertyDescriptor, has, has, hasPrototypeMap, incompatibleCallError, initPrototypeConstructor, initPrototypeId, initPrototypeMethod, initPrototypeMethod, initPrototypeMethod, initPrototypeValue, initPrototypeValue, instanceIdInfo, put, put, setAttributes, setInstanceIdAttributes, setInstanceIdValue`

    - ### Methods inherited from class org.mozilla.javascript.ScriptableObject

      `applyDescriptorToAttributeBitset, associateValue, avoidObjectDetection, buildDataDescriptor, callMethod, callMethod, checkPropertyChange, checkPropertyDefinition, defineClass, defineClass, defineClass, defineConst, defineConstProperty, defineFunctionProperties, defineOwnProperties, defineOwnProperty, defineProperty, defineProperty, defineProperty, defineProperty, defineProperty, delete, deleteProperty, deleteProperty, ensureScriptable, ensureScriptableObject, ensureSymbolScriptable, equivalentValues, get, get, getAllIds, getArrayPrototype, getAssociatedValue, getAttributes, getAttributes, getAttributes, getAttributes, getClassName, getClassPrototype, getDefaultValue, getDefaultValue, getExternalArrayData, getExternalArrayLength, getFunctionPrototype, getGetterOrSetter, getIds, getObjectPrototype, getParentScope, getProperty, getProperty, getProperty, getPropertyIds, getPrototype, getSlot, getTopLevelScope, getTopScopeValue, getTypedProperty, getTypedProperty, has, hasInstance, hasProperty, hasProperty, hasProperty, isAccessorDescriptor, isConst, isDataDescriptor, isEmpty, isExtensible, isFalse, isGenericDescriptor, isGetterOrSetter, isSealed, isTrue, preventExtensions, put, putConst, putConstProperty, putProperty, putProperty, putProperty, redefineProperty, sameValue, sealObject, setAttributes, setAttributes, setAttributes, setAttributes, setExternalArrayData, setGetterOrSetter, setParentScope, setPrototype, size`

    - ### Methods inherited from class java.lang.Object

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

- - ### Constructor Detail

    - #### XMLObject

          public XMLObject()

    - #### XMLObject

          public XMLObject(Scriptable scope,
                   Scriptable prototype)

  - ### Method Detail

    - #### has

          public abstract boolean has(Context cx,
                    java.lang.Object id)

      Implementation of ECMAScript [[Has]].

    - #### get

          public abstract java.lang.Object get(Context cx,
                             java.lang.Object id)

      Implementation of ECMAScript [[Get]].

    - #### put

          public abstract void put(Context cx,
                 java.lang.Object id,
                 java.lang.Object value)

      Implementation of ECMAScript [[Put]].

    - #### delete

          public abstract boolean delete(Context cx,
                       java.lang.Object id)

      Implementation of ECMAScript [[Delete]].

    - #### getFunctionProperty

          public abstract java.lang.Object getFunctionProperty(Context cx,
                                             java.lang.String name)

    - #### getFunctionProperty

          public abstract java.lang.Object getFunctionProperty(Context cx,
                                             int id)

    - #### getExtraMethodSource

          public abstract Scriptable getExtraMethodSource(Context cx)

      Return an additional object to look for methods that runtime should consider during method search. Return null if no such object available.

    - #### memberRef

          public abstract Ref memberRef(Context cx,
                      java.lang.Object elem,
                      int memberTypeFlags)

      Generic reference to implement x.@y, x..y etc.

    - #### memberRef

          public abstract Ref memberRef(Context cx,
                      java.lang.Object namespace,
                      java.lang.Object elem,
                      int memberTypeFlags)

      Generic reference to implement x::ns, x.@ns::y, x..@ns::y etc.

    - #### enterWith

          public abstract NativeWith enterWith(Scriptable scope)

      Wrap this object into NativeWith to implement the with statement.

    - #### enterDotQuery

          public abstract NativeWith enterDotQuery(Scriptable scope)

      Wrap this object into NativeWith to implement the .() query.

    - #### addValues

          public java.lang.Object addValues(Context cx,
                                   boolean thisIsLeft,
                                   java.lang.Object value)

      Custom `+` operator. Should return `Scriptable.NOT_FOUND` if this object does not have custom addition operator for the given value, or the result of the addition operation.

      The default implementation returns `Scriptable.NOT_FOUND` to indicate no custom addition operation.

      Parameters:
        `cx` - the Context object associated with the current thread.
        `thisIsLeft` - if true, the object should calculate this + value if false, the object should calculate value + this.
        `value` - the second argument for addition operation.

    - #### getTypeOf

          public java.lang.String getTypeOf()

      Gets the value returned by calling the typeof operator on this object.
      Overrides:
        `getTypeOf` in class `ScriptableObject`
      Returns:
        "xml" or "undefined" if `ScriptableObject.avoidObjectDetection()` returns `true`
      See Also:
        `ScriptableObject.getTypeOf()`