Package com.ericsson.otp.erlang

## Class OtpErlangMap

- java.lang.Object
- - com.ericsson.otp.erlang.OtpErlangObject
  - - com.ericsson.otp.erlang.OtpErlangMap

- All Implemented Interfaces:
    `java.io.Serializable`, `java.lang.Cloneable`

      public class OtpErlangMap
      extends OtpErlangObject

  Provides a Java representation of Erlang maps. Maps are created from one or more arbitrary Erlang terms.

  The arity of the map is the number of elements it contains. The keys and values can be retrieved as arrays and the value for a key can be queried.

  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.ericsson.otp.erlang.OtpErlangObject

      `OtpErlangObject.Hash`

  - ### Field Summary

    - ### Fields inherited from class com.ericsson.otp.erlang.OtpErlangObject

      `hashCodeValue`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `OtpErlangMap()` | Create an empty map.
    `OtpErlangMap​(OtpErlangObject[] keys, int kstart, int kcount, OtpErlangObject[] values, int vstart, int vcount)` | Create a map from an array of terms.
    `OtpErlangMap​(OtpErlangObject[] keys, OtpErlangObject[] values)` | Create a map from an array of keys and an array of values.
    `OtpErlangMap​(OtpInputStream buf)` | Create a map from a stream containing a map encoded in Erlang external format.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `int` | `arity()` | Get the arity of the map.
    `<T> OtpErlangObject` | `bind​(T binds)` | Make new Erlang term replacing variables with the respective values from bindings argument(s).
    `java.lang.Object` | `clone()` |
    `protected int` | `doHashCode()` |
    `void` | `encode​(OtpOutputStream buf)` | Convert this map to the equivalent Erlang external representation.
    `java.util.Set<java.util.Map.Entry<OtpErlangObject,​OtpErlangObject>>` | `entrySet()` | make Set view of the map key-value pairs
    `boolean` | `equals​(java.lang.Object o)` | Determine if two maps are equal.
    `OtpErlangObject` | `get​(OtpErlangObject key)` | Get the specified value from the map.
    `OtpErlangObject[]` | `keys()` | Get all the keys from the map as an array.
    `<T> boolean` | `match​(OtpErlangObject term, T binds)` | Perform match operation against given term.
    `OtpErlangObject` | `put​(OtpErlangObject key, OtpErlangObject value)` | Put value corresponding to key into the map.
    `OtpErlangObject` | `remove​(OtpErlangObject key)` | removes mapping for the key if present.
    `java.lang.String` | `toString()` | Get the string representation of the map.
    `OtpErlangObject[]` | `values()` | Get all the values from the map as an array.

    - ### Methods inherited from class com.ericsson.otp.erlang.OtpErlangObject

      `decode, hashCode`

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

      `finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### OtpErlangMap

          public OtpErlangMap()

      Create an empty map.

    - #### OtpErlangMap

          public OtpErlangMap​(OtpErlangObject[] keys,
                              OtpErlangObject[] values)

      Create a map from an array of keys and an array of values.
      Parameters:
        `keys` - the array of terms to create the map keys from.
        `values` - the array of terms to create the map values from.
      Throws:
        `java.lang.IllegalArgumentException` - if any array is empty (null) or contains null elements.

    - #### OtpErlangMap

          public OtpErlangMap​(OtpErlangObject[] keys,
                              int kstart,
                              int kcount,
                              OtpErlangObject[] values,
                              int vstart,
                              int vcount)

      Create a map from an array of terms.
      Parameters:
        `keys` - the array of terms to create the map from.
        `kstart` - the offset of the first key to insert.
        `kcount` - the number of keys to insert.
        `values` - the array of values to create the map from.
        `vstart` - the offset of the first value to insert.
        `vcount` - the number of values to insert.
      Throws:
        `java.lang.IllegalArgumentException` - if any array is empty (null) or contains null elements.
        `java.lang.IllegalArgumentException` - if kcount and vcount differ.

    - #### OtpErlangMap

          public OtpErlangMap​(OtpInputStream buf)
                       throws OtpErlangDecodeException

      Create a map from a stream containing a map encoded in Erlang external format.
      Parameters:
        `buf` - the stream containing the encoded map.
      Throws:
        `OtpErlangDecodeException` - if the buffer does not contain a valid external representation of an Erlang map.

  - ### Method Detail

    - #### arity

          public int arity()

      Get the arity of the map.
      Returns:
        the number of elements contained in the map.

    - #### put

          public OtpErlangObject put​(OtpErlangObject key,
                                     OtpErlangObject value)

      Put value corresponding to key into the map. For detailed behavior description see `Map.put(Object, Object)`.
      Parameters:
        `key` - key to associate value with
        `value` - value to associate with key
      Returns:
        previous value associated with key or null

    - #### remove

          public OtpErlangObject remove​(OtpErlangObject key)

      removes mapping for the key if present.
      Parameters:
        `key` - key for which mapping is to be remove
      Returns:
        value associated with key or null

    - #### get

          public OtpErlangObject get​(OtpErlangObject key)

      Get the specified value from the map.
      Parameters:
        `key` - the key of the requested value.
      Returns:
        the requested value, of null if key is not a valid key.

    - #### keys

          public OtpErlangObject[] keys()

      Get all the keys from the map as an array.
      Returns:
        an array containing all of the map's keys.

    - #### values

          public OtpErlangObject[] values()

      Get all the values from the map as an array.
      Returns:
        an array containing all of the map's values.

    - #### entrySet

          public java.util.Set<java.util.Map.Entry<OtpErlangObject,​OtpErlangObject>> entrySet()

      make Set view of the map key-value pairs
      Returns:
        a set containing key-value pairs

    - #### toString

          public java.lang.String toString()

      Get the string representation of the map.
      Specified by:
        `toString` in class `OtpErlangObject`
      Returns:
        the string representation of the map.

    - #### encode

          public void encode​(OtpOutputStream buf)

      Convert this map to the equivalent Erlang external representation.
      Specified by:
        `encode` in class `OtpErlangObject`
      Parameters:
        `buf` - an output stream to which the encoded map should be written.

    - #### equals

          public boolean equals​(java.lang.Object o)

      Determine if two maps are equal. Maps are equal if they have the same arity and all of the elements are equal.
      Specified by:
        `equals` in class `OtpErlangObject`
      Parameters:
        `o` - the map to compare to.
      Returns:
        true if the maps have the same arity and all the elements are equal.

    - #### match

          public <T> boolean match​(OtpErlangObject term,
                                   T binds)

      Description copied from class: `OtpErlangObject`
      Perform match operation against given term.
      Overrides:
        `match` in class `OtpErlangObject`
      Parameters:
        `term` - the object to match
        `binds` - variable bindings
      Returns:
        true if match succeeded

    - #### bind

          public <T> OtpErlangObject bind​(T binds)
                                   throws OtpErlangException

      Description copied from class: `OtpErlangObject`
      Make new Erlang term replacing variables with the respective values from bindings argument(s).
      Overrides:
        `bind` in class `OtpErlangObject`
      Parameters:
        `binds` - variable bindings
      Returns:
        new term
      Throws:
        `OtpErlangException`

    - #### doHashCode

          protected int doHashCode()

      Overrides:
        `doHashCode` in class `OtpErlangObject`

    - #### clone

          public java.lang.Object clone()

      Overrides:
        `clone` in class `OtpErlangObject`