Interface SlotMap

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

public interface SlotMap extends 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

    Modifier and Type
    Method
    Description
    void
    addSlot(org.mozilla.javascript.ScriptableObject.Slot newSlot)
    Insert a new slot to the map.
    org.mozilla.javascript.ScriptableObject.Slot
    get(Object key, int index, org.mozilla.javascript.ScriptableObject.SlotAccess accessType)
    Return the Slot that matches EITHER "key" or "index".
    boolean
    Return whether the map is empty.
    org.mozilla.javascript.ScriptableObject.Slot
    query(Object key, int index)
    This is an optimization that is the same as get with an accessType of SLOT_QUERY.
    void
    remove(Object key, int index)
    Remove the slot at either "key" or "index".
    int
    Return the size of the map.

    Methods inherited from interface java.lang.Iterable

    forEach, iterator, spliterator
  • Method Details

    • 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(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(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(Object key, int index)
      Remove the slot at either "key" or "index".