Class MapFieldLite<K,​V>

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.util.Map<K,​V>

    public final class MapFieldLite<K,​V>
    extends java.util.LinkedHashMap<K,​V>
    Internal representation of map fields in generated lite-runtime messages.

    This class is a protobuf implementation detail. Users shouldn't use this class directly.

    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class java.util.AbstractMap

        java.util.AbstractMap.SimpleEntry<K extends java.lang.Object,​V extends java.lang.Object>, java.util.AbstractMap.SimpleImmutableEntry<K extends java.lang.Object,​V extends java.lang.Object>
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private MapFieldLite()  
      private MapFieldLite​(java.util.Map<K,​V> mapData)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      (package private) static <K,​V>
      int
      calculateHashCodeForMap​(java.util.Map<K,​V> a)
      Calculates the hash code for a Map.
      private static int calculateHashCodeForObject​(java.lang.Object a)  
      private static void checkForNullKeysAndValues​(java.util.Map<?,​?> m)  
      void clear()  
      private static java.lang.Object copy​(java.lang.Object object)  
      (package private) static <K,​V>
      java.util.Map<K,​V>
      copy​(java.util.Map<K,​V> map)
      Makes a deep copy of a Map.
      static <K,​V>
      MapFieldLite<K,​V>
      emptyMapField()
      Returns a singleton immutable empty MapFieldLite instance.
      private void ensureMutable()  
      java.util.Set<java.util.Map.Entry<K,​V>> entrySet()  
      boolean equals​(java.lang.Object object)
      Checks whether two map fields are equal.
      private static boolean equals​(java.lang.Object a, java.lang.Object b)  
      (package private) static <K,​V>
      boolean
      equals​(java.util.Map<K,​V> a, java.util.Map<K,​V> b)
      Checks whether two Maps are equal.
      int hashCode()  
      boolean isMutable()
      Returns whether this field can be modified.
      void makeImmutable()
      Makes this field immutable.
      void mergeFrom​(MapFieldLite<K,​V> other)  
      MapFieldLite<K,​V> mutableCopy()
      Returns a deep copy of this map field.
      V put​(java.util.Map.Entry<K,​V> entry)  
      V put​(K key, V value)  
      void putAll​(java.util.Map<? extends K,​? extends V> m)  
      V remove​(java.lang.Object key)  
      • Methods inherited from class java.util.LinkedHashMap

        containsValue, forEach, get, getOrDefault, keySet, removeEldestEntry, replaceAll, values
      • Methods inherited from class java.util.HashMap

        clone, compute, computeIfAbsent, computeIfPresent, containsKey, isEmpty, merge, putIfAbsent, remove, replace, replace, size
      • Methods inherited from class java.util.AbstractMap

        toString
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Map

        compute, computeIfAbsent, computeIfPresent, containsKey, isEmpty, merge, putIfAbsent, remove, replace, replace, size
    • Field Detail

      • isMutable

        private boolean isMutable
      • EMPTY_MAP_FIELD

        private static final MapFieldLite<?,​?> EMPTY_MAP_FIELD
    • Constructor Detail

      • MapFieldLite

        private MapFieldLite()
      • MapFieldLite

        private MapFieldLite​(java.util.Map<K,​V> mapData)
    • Method Detail

      • emptyMapField

        public static <K,​V> MapFieldLite<K,​V> emptyMapField()
        Returns a singleton immutable empty MapFieldLite instance.
      • entrySet

        public java.util.Set<java.util.Map.Entry<K,​V>> entrySet()
        Specified by:
        entrySet in interface java.util.Map<K,​V>
        Overrides:
        entrySet in class java.util.LinkedHashMap<K,​V>
      • clear

        public void clear()
        Specified by:
        clear in interface java.util.Map<K,​V>
        Overrides:
        clear in class java.util.LinkedHashMap<K,​V>
      • put

        public V put​(K key,
                     V value)
        Specified by:
        put in interface java.util.Map<K,​V>
        Overrides:
        put in class java.util.HashMap<K,​V>
      • put

        public V put​(java.util.Map.Entry<K,​V> entry)
      • putAll

        public void putAll​(java.util.Map<? extends K,​? extends V> m)
        Specified by:
        putAll in interface java.util.Map<K,​V>
        Overrides:
        putAll in class java.util.HashMap<K,​V>
      • remove

        public V remove​(java.lang.Object key)
        Specified by:
        remove in interface java.util.Map<K,​V>
        Overrides:
        remove in class java.util.HashMap<K,​V>
      • checkForNullKeysAndValues

        private static void checkForNullKeysAndValues​(java.util.Map<?,​?> m)
      • equals

        private static boolean equals​(java.lang.Object a,
                                      java.lang.Object b)
      • equals

        static <K,​V> boolean equals​(java.util.Map<K,​V> a,
                                          java.util.Map<K,​V> b)
        Checks whether two Maps are equal. We don't use the default equals method of Map because it compares by identity not by content for byte arrays.
      • equals

        public boolean equals​(java.lang.Object object)
        Checks whether two map fields are equal.
        Specified by:
        equals in interface java.util.Map<K,​V>
        Overrides:
        equals in class java.util.AbstractMap<K,​V>
      • calculateHashCodeForObject

        private static int calculateHashCodeForObject​(java.lang.Object a)
      • calculateHashCodeForMap

        static <K,​V> int calculateHashCodeForMap​(java.util.Map<K,​V> a)
        Calculates the hash code for a Map. We don't use the default hash code method of Map because for byte arrays and protobuf enums it use Object.hashCode().
      • hashCode

        public int hashCode()
        Specified by:
        hashCode in interface java.util.Map<K,​V>
        Overrides:
        hashCode in class java.util.AbstractMap<K,​V>
      • copy

        private static java.lang.Object copy​(java.lang.Object object)
      • copy

        static <K,​V> java.util.Map<K,​V> copy​(java.util.Map<K,​V> map)
        Makes a deep copy of a Map. Immutable objects in the map will be shared (e.g., integers, strings, immutable messages) and mutable ones will have a copy (e.g., byte arrays, mutable messages).
      • mutableCopy

        public MapFieldLite<K,​V> mutableCopy()
        Returns a deep copy of this map field.
      • makeImmutable

        public void makeImmutable()
        Makes this field immutable. All subsequent modifications will throw an UnsupportedOperationException.
      • isMutable

        public boolean isMutable()
        Returns whether this field can be modified.
      • ensureMutable

        private void ensureMutable()