Class MapFactory

java.lang.Object
org.apache.velocity.util.MapFactory

public class MapFactory extends Object
Factory class for creating Maps. The main purpose of this class is to take advantage of Java 5 Concurrent classes if they are available. We use reflection to instantiate java.util.concurrent classes to avoid compile time dependency on Java 5. See Issue 607 for more info on this class.
Since:
1.6
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private static Constructor
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static Map
    create(boolean allowNullKeys)
    Creates a new instance of a class that implements Map interface using the JDK defaults for initial size, load factor, etc.
    static Map
    create(int size, float loadFactor, int concurrencyLevel, boolean allowNullKeys)
    Creates a new instance of a class that implements Map interface.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • concurrentHashMapConstructor

      private static Constructor concurrentHashMapConstructor
  • Constructor Details

    • MapFactory

      public MapFactory()
  • Method Details

    • create

      public static Map create(boolean allowNullKeys)
      Creates a new instance of a class that implements Map interface using the JDK defaults for initial size, load factor, etc. Note that there is a small performance penalty because concurrent maps are created using reflection.
      Parameters:
      allowNullKeys - if true, the returned Map instance supports null keys
      Returns:
      one of ConcurrentHashMap, HashMap, Hashtable
    • create

      public static Map create(int size, float loadFactor, int concurrencyLevel, boolean allowNullKeys)
      Creates a new instance of a class that implements Map interface. Note that there is a small performance penalty because concurrent maps are created using reflection.
      Parameters:
      size - initial size of the map
      loadFactor - smaller value = better performance, larger value = better memory utilization
      concurrencyLevel - estimated number of writer Threads. If this is smaller than 1, HashMap is always returned which is not threadsafe.
      allowNullKeys - if true, the returned Map instance supports null keys
      Returns:
      one of ConcurrentHashMap, HashMap, Hashtable