HashSlotMap (rhino 1.7.13 API)

org.mozilla.javascript

## Class HashSlotMap

- java.lang.Object
- - org.mozilla.javascript.HashSlotMap

- All Implemented Interfaces:
    java.lang.Iterable<org.mozilla.javascript.ScriptableObject.Slot>, SlotMap

      public class HashSlotMap
      extends java.lang.Object
      implements SlotMap

  This class implements the SlotMap interface using a java.util.HashMap. This class has more overhead than EmbeddedSlotMap, especially because it puts each "Slot" inside an intermediate object. However it is much more resistant to large number of hash collisions than EmbeddedSlotMap and therefore we use this implementation when an object gains a large number of properties.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `HashSlotMap()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addSlot(org.mozilla.javascript.ScriptableObject.Slot newSlot)` Insert a new slot to the map.
    `org.mozilla.javascript.ScriptableObject.Slot` | `get(java.lang.Object key, int index, org.mozilla.javascript.ScriptableObject.SlotAccess accessType)` Return the Slot that matches EITHER "key" or "index".
    `boolean` | `isEmpty()` Return whether the map is empty.
    `java.util.Iterator<org.mozilla.javascript.ScriptableObject.Slot>` | `iterator()`
    `org.mozilla.javascript.ScriptableObject.Slot` | `query(java.lang.Object key, int index)` This is an optimization that is the same as get with an accessType of SLOT_QUERY.
    `void` | `remove(java.lang.Object key, int index)` Remove the slot at either "key" or "index".
    `int` | `size()` Return the size of the map.

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

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

    - ### Methods inherited from interface java.lang.Iterable

      `forEach, spliterator`

- - ### Constructor Detail

    - #### HashSlotMap

          public HashSlotMap()

  - ### Method Detail

    - #### size

          public int size()

      Description copied from interface: `SlotMap`
      Return the size of the map.
      Specified by:
        `size` in interface `SlotMap`

    - #### isEmpty

          public boolean isEmpty()

      Description copied from interface: `SlotMap`
      Return whether the map is empty.
      Specified by:
        `isEmpty` in interface `SlotMap`

    - #### query

          public org.mozilla.javascript.ScriptableObject.Slot query(java.lang.Object key,
                                                                    int index)

      Description copied from interface: `SlotMap`
      This is an optimization that is the same as get with an accessType of SLOT_QUERY. It should be used instead of SLOT_QUERY because it is more efficient.
      Specified by:
        `query` in interface `SlotMap`

    - #### get

          public org.mozilla.javascript.ScriptableObject.Slot get(java.lang.Object key,
                                                                  int index,
                                                                  org.mozilla.javascript.ScriptableObject.SlotAccess accessType)

      Description copied from interface: `SlotMap`
      Return the Slot that matches EITHER "key" or "index". (It will use "key" if it is not null, and otherwise "index". "accessType" is one of the constants defined in ScriptableObject.
      Specified by:
        `get` in interface `SlotMap`

    - #### addSlot

          public void addSlot(org.mozilla.javascript.ScriptableObject.Slot newSlot)

      Description copied from interface: `SlotMap`
      Insert a new slot to the map. Both "name" and "indexOrHash" must be populated. Note that ScriptableObject generally adds slots via the "get" method.
      Specified by:
        `addSlot` in interface `SlotMap`

    - #### remove

          public void remove(java.lang.Object key,
                             int index)

      Description copied from interface: `SlotMap`
      Remove the slot at either "key" or "index".
      Specified by:
        `remove` in interface `SlotMap`

    - #### iterator

          public java.util.Iterator<org.mozilla.javascript.ScriptableObject.Slot> iterator()

      Specified by:
        `iterator` in interface `java.lang.Iterable<org.mozilla.javascript.ScriptableObject.Slot>`