Class JDBCStatementCache.BoundedLinkedHashMap

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, java.util.Map<StatementKey,​java.sql.PreparedStatement>
    Enclosing class:
    JDBCStatementCache

    private static class JDBCStatementCache.BoundedLinkedHashMap
    extends java.util.LinkedHashMap<StatementKey,​java.sql.PreparedStatement>
    A LinkedHashMap with an upper bound on the number of entries.

    If the maximum size is exceeded, the oldest entry is automatically removed after the new entry has been inserted.

    • 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>
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private int maxSize
      Maximum number of entries.
    • Constructor Summary

      Constructors 
      Constructor Description
      BoundedLinkedHashMap​(int maxCapacity)
      Creates a bounded LinkedHashMap with the specified maximum size.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected boolean removeEldestEntry​(java.util.Map.Entry<StatementKey,​java.sql.PreparedStatement> eldest)
      Tells if an entry should be removed from the map.
      • Methods inherited from class java.util.LinkedHashMap

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

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

        equals, hashCode, 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, equals, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, size
    • Field Detail

      • maxSize

        private final int maxSize
        Maximum number of entries.
    • Constructor Detail

      • BoundedLinkedHashMap

        public BoundedLinkedHashMap​(int maxCapacity)
        Creates a bounded LinkedHashMap with the specified maximum size.

        Iteration is by insertion-order.

        Parameters:
        maxCapacity - maximum size of the map
    • Method Detail

      • removeEldestEntry

        protected boolean removeEldestEntry​(java.util.Map.Entry<StatementKey,​java.sql.PreparedStatement> eldest)
        Tells if an entry should be removed from the map.

        If the cache has exceeded its maximum size, the oldest element will be marked for removal. The oldest element will be removed after the new element has been inserted.

        Overrides:
        removeEldestEntry in class java.util.LinkedHashMap<StatementKey,​java.sql.PreparedStatement>
        Parameters:
        eldest - the element picked out for removal
        Returns:
        true if the element is to be removed, false if not.