Class FixedSizeMap

  • All Implemented Interfaces:
    java.io.Serializable, java.util.Map, BoundedMap

    public class FixedSizeMap
    extends AbstractMapDecorator
    implements java.util.Map, BoundedMap, java.io.Serializable
    Decorates another Map to fix the size, preventing add/remove.

    Any action that would change the size of the map is disallowed. The put method is allowed to change the value associated with an existing key however.

    If trying to remove or clear the map, an UnsupportedOperationException is thrown. If trying to put a new mapping into the map, an IllegalArgumentException is thrown. This is because the put method can succeed if the mapping's key already exists in the map, so the put method is not always unsupported.

    Note that FixedSizeMap is not synchronized and is not thread-safe. If you wish to use this map from multiple threads concurrently, you must use appropriate synchronization. The simplest approach is to wrap this map using Collections.synchronizedMap(Map). This class may throw exceptions when accessed by concurrent threads without synchronization.

    This class is Serializable from Commons Collections 3.1.

    Since:
    Commons Collections 3.0
    Version:
    $Revision: 646777 $ $Date: 2008-04-10 14:33:15 +0200 (Thu, 10 Apr 2008) $
    See Also:
    Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface java.util.Map

        java.util.Map.Entry<K extends java.lang.Object,​V extends java.lang.Object>
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static long serialVersionUID
      Serialization version
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      protected FixedSizeMap​(java.util.Map map)
      Constructor that wraps (not copies).
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear()  
      static java.util.Map decorate​(java.util.Map map)
      Factory method to create a fixed size map.
      java.util.Set entrySet()  
      boolean isFull()
      Returns true if this map is full and no new elements can be added.
      java.util.Set keySet()  
      int maxSize()
      Gets the maximum size of the map (the bound).
      java.lang.Object put​(java.lang.Object key, java.lang.Object value)  
      void putAll​(java.util.Map mapToCopy)  
      private void readObject​(java.io.ObjectInputStream in)
      Read the map in using a custom routine.
      java.lang.Object remove​(java.lang.Object key)  
      java.util.Collection values()  
      private void writeObject​(java.io.ObjectOutputStream out)
      Write the map out using a custom routine.
      • Methods inherited from class java.lang.Object

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

        compute, computeIfAbsent, computeIfPresent, containsKey, containsValue, equals, forEach, get, getOrDefault, hashCode, isEmpty, merge, putIfAbsent, remove, replace, replace, replaceAll, size
    • Field Detail

      • serialVersionUID

        private static final long serialVersionUID
        Serialization version
        See Also:
        Constant Field Values
    • Constructor Detail

      • FixedSizeMap

        protected FixedSizeMap​(java.util.Map map)
        Constructor that wraps (not copies).
        Parameters:
        map - the map to decorate, must not be null
        Throws:
        java.lang.IllegalArgumentException - if map is null
    • Method Detail

      • decorate

        public static java.util.Map decorate​(java.util.Map map)
        Factory method to create a fixed size map.
        Parameters:
        map - the map to decorate, must not be null
        Throws:
        java.lang.IllegalArgumentException - if map is null
      • writeObject

        private void writeObject​(java.io.ObjectOutputStream out)
                          throws java.io.IOException
        Write the map out using a custom routine.
        Parameters:
        out - the output stream
        Throws:
        java.io.IOException
        Since:
        Commons Collections 3.1
      • readObject

        private void readObject​(java.io.ObjectInputStream in)
                         throws java.io.IOException,
                                java.lang.ClassNotFoundException
        Read the map in using a custom routine.
        Parameters:
        in - the input stream
        Throws:
        java.io.IOException
        java.lang.ClassNotFoundException
        Since:
        Commons Collections 3.1
      • put

        public java.lang.Object put​(java.lang.Object key,
                                    java.lang.Object value)
        Specified by:
        put in interface java.util.Map
        Overrides:
        put in class AbstractMapDecorator
      • putAll

        public void putAll​(java.util.Map mapToCopy)
        Specified by:
        putAll in interface java.util.Map
        Overrides:
        putAll in class AbstractMapDecorator
      • clear

        public void clear()
        Specified by:
        clear in interface java.util.Map
        Overrides:
        clear in class AbstractMapDecorator
      • remove

        public java.lang.Object remove​(java.lang.Object key)
        Specified by:
        remove in interface java.util.Map
        Overrides:
        remove in class AbstractMapDecorator
      • entrySet

        public java.util.Set entrySet()
        Specified by:
        entrySet in interface java.util.Map
        Overrides:
        entrySet in class AbstractMapDecorator
      • keySet

        public java.util.Set keySet()
        Specified by:
        keySet in interface java.util.Map
        Overrides:
        keySet in class AbstractMapDecorator
      • values

        public java.util.Collection values()
        Specified by:
        values in interface java.util.Map
        Overrides:
        values in class AbstractMapDecorator
      • isFull

        public boolean isFull()
        Description copied from interface: BoundedMap
        Returns true if this map is full and no new elements can be added.
        Specified by:
        isFull in interface BoundedMap
        Returns:
        true if the map is full
      • maxSize

        public int maxSize()
        Description copied from interface: BoundedMap
        Gets the maximum size of the map (the bound).
        Specified by:
        maxSize in interface BoundedMap
        Returns:
        the maximum number of elements the map can hold