Package org.mozilla.javascript

## Class EmbeddedSlotMap

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

- All Implemented Interfaces:
    `java.lang.Iterable<Slot>`, `SlotMap`

      public class EmbeddedSlotMap
      extends java.lang.Object
      implements SlotMap

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `EmbeddedSlotMap()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `add​(Slot newSlot)` | Insert a new slot to the map.
    `boolean` | `isEmpty()` | Return whether the map is empty.
    `java.util.Iterator<Slot>` | `iterator()` |
    `Slot` | `modify​(java.lang.Object key, int index, int attributes)` | Locate the slot with given name or index, and create a new one if necessary.
    `Slot` | `query​(java.lang.Object key, int index)` | Locate the slot with the given name or index.
    `void` | `remove​(java.lang.Object key, int index)` | Remove the slot at either "key" or "index".
    `void` | `replace​(Slot oldSlot, Slot newSlot)` | Replace "slot" with a new slot.
    `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

    - #### EmbeddedSlotMap

          public EmbeddedSlotMap()

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

    - #### iterator

          public java.util.Iterator<Slot> iterator()

      Specified by:
        `iterator` in interface `java.lang.Iterable<Slot>`

    - #### query

          public Slot query​(java.lang.Object key,
                            int index)

      Locate the slot with the given name or index.
      Specified by:
        `query` in interface `SlotMap`
      Parameters:
        `key` - The key for the slot, which should be a String or a Symbol.
        `index` - if key is zero, then this will be used as the key instead.
      Returns:
        either the Slot that matched the key and index, or null

    - #### modify

          public Slot modify​(java.lang.Object key,
                             int index,
                             int attributes)

      Locate the slot with given name or index, and create a new one if necessary.
      Specified by:
        `modify` in interface `SlotMap`
      Parameters:
        `key` - either a String or a Symbol object that identifies the property
        `index` - index or 0 if slot holds property name.
        `attributes` - the attributes to be set on the slot if a new slot is created. Existing slots will not be modified.
      Returns:
        a Slot, which will be created anew if no such slot exists.

    - #### replace

          public void replace​(Slot oldSlot,
                              Slot newSlot)

      Description copied from interface: `SlotMap`
      Replace "slot" with a new slot. This is used to change slot types.
      Specified by:
        `replace` in interface `SlotMap`

    - #### add

          public void add​(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 "modify" method.
      Specified by:
        `add` 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`
      Parameters:
        `key` - The key for the slot, which should be a String or a Symbol.
        `index` - if key is zero, then this will be used as the key instead.