SlotMap (rhino 1.7.13 API)

org.mozilla.javascript

## Interface SlotMap

- All Superinterfaces:
    java.lang.Iterable<org.mozilla.javascript.ScriptableObject.Slot>
  All Known Implementing Classes:
    EmbeddedSlotMap, HashSlotMap

      public interface SlotMap
      extends java.lang.Iterable<org.mozilla.javascript.ScriptableObject.Slot>

  A SlotMap is an interface to the main data structure that contains all the "Slots" that back a ScriptableObject. It is the primary property map in Rhino. It is Iterable but does not implement java.util.Map because that comes with a bunch of overhead that we do not need. This class generally has a bit of a strange interface, and its interactions with ScriptableObject are complex. Many attempts to make this interface more elegant have resulted in substantial performance regressions so we are doing the best that we can.

- - ### Method Summary

    All Methods Instance Methods Abstract 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.
    `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 interface java.lang.Iterable

      `forEach, iterator, spliterator`

- - ### Method Detail

    - #### size

          int size()

      Return the size of the map.

    - #### isEmpty

          boolean isEmpty()

      Return whether the map is empty.

    - #### get

          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". (It will use "key" if it is not null, and otherwise "index". "accessType" is one of the constants defined in ScriptableObject.

    - #### query

          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. It should be used instead of SLOT_QUERY because it is more efficient.

    - #### addSlot

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

      Insert a new slot to the map. Both "name" and "indexOrHash" must be populated. Note that ScriptableObject generally adds slots via the "get" method.

    - #### remove

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

      Remove the slot at either "key" or "index".