Class FixedSizeSortedMap

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

    public class FixedSizeSortedMap
    extends AbstractSortedMapDecorator
    implements java.util.SortedMap, BoundedMap, java.io.Serializable
    Decorates another SortedMap to fix the size blocking 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 FixedSizeSortedMap 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.synchronizedSortedMap(java.util.SortedMap<K, V>). 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 FixedSizeSortedMap​(java.util.SortedMap 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.SortedMap decorate​(java.util.SortedMap map)
      Factory method to create a fixed size sorted map.
      java.util.Set entrySet()  
      protected java.util.SortedMap getSortedMap()
      Gets the map being decorated.
      java.util.SortedMap headMap​(java.lang.Object toKey)  
      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.SortedMap subMap​(java.lang.Object fromKey, java.lang.Object toKey)  
      java.util.SortedMap tailMap​(java.lang.Object fromKey)  
      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
      • Methods inherited from interface java.util.SortedMap

        comparator, firstKey, lastKey
    • Field Detail

      • serialVersionUID

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

      • FixedSizeSortedMap

        protected FixedSizeSortedMap​(java.util.SortedMap 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.SortedMap decorate​(java.util.SortedMap map)
        Factory method to create a fixed size sorted 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.
        Throws:
        java.io.IOException
      • readObject

        private void readObject​(java.io.ObjectInputStream in)
                         throws java.io.IOException,
                                java.lang.ClassNotFoundException
        Read the map in using a custom routine.
        Throws:
        java.io.IOException
        java.lang.ClassNotFoundException
      • 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
        Specified by:
        entrySet in interface java.util.SortedMap
        Overrides:
        entrySet in class AbstractMapDecorator
      • keySet

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

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

        public java.util.SortedMap subMap​(java.lang.Object fromKey,
                                          java.lang.Object toKey)
        Specified by:
        subMap in interface java.util.SortedMap
        Overrides:
        subMap in class AbstractSortedMapDecorator
      • headMap

        public java.util.SortedMap headMap​(java.lang.Object toKey)
        Specified by:
        headMap in interface java.util.SortedMap
        Overrides:
        headMap in class AbstractSortedMapDecorator
      • tailMap

        public java.util.SortedMap tailMap​(java.lang.Object fromKey)
        Specified by:
        tailMap in interface java.util.SortedMap
        Overrides:
        tailMap in class AbstractSortedMapDecorator
      • 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