Class ParameterMap

  • All Implemented Interfaces:
    java.io.Serializable, java.util.concurrent.ConcurrentMap<java.lang.String,​java.lang.Object>, java.util.Map<java.lang.String,​java.lang.Object>, javax.script.Bindings

    public class ParameterMap
    extends java.util.concurrent.ConcurrentHashMap<java.lang.String,​java.lang.Object>
    implements javax.script.Bindings

    A concurrently accessible parameter map which holds both keys and values as strings. An atomic change counter tracks updates, to allow interested consumers to determine when to re-read values across threads. The basic format is <paramname>=<paramvalue>;...

    To create a parameter map, use one of the static parse... methods.

    No non-String types are used internally. Everything is encoded as a String, even though the generic type is parameterized for Bindings support.

    See Also:
    Serialized Form
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static interface  ParameterMap.Listener  
      static class  ParameterMap.NamedParameter  
      • Nested classes/interfaces inherited from class java.util.concurrent.ConcurrentHashMap

        java.util.concurrent.ConcurrentHashMap.KeySetView<K extends java.lang.Object,​V extends java.lang.Object>
      • 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>
      • Nested classes/interfaces inherited from interface java.util.Map

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

      Constructors 
      Constructor Description
      ParameterMap​(java.util.Map<java.lang.String,​java.lang.String> valueMap)  
    • Method Summary

      Modifier and Type Method Description
      void addListener​(ParameterMap.Listener listener)  
      void assertOnlyOneOf​(java.lang.String... paramName)  
      void clear()  
      java.util.Set<java.util.Map.Entry<java.lang.String,​java.lang.Object>> entrySet()  
      java.lang.Object get​(java.lang.Object key)  
      java.util.concurrent.atomic.AtomicLong getChangeCounter()
      Get the atomic change counter for this parameter map.
      java.util.Optional<java.lang.Boolean> getOptionalBoolean​(java.lang.String paramName)  
      java.util.Optional<java.lang.Double> getOptionalDouble​(java.lang.String paramName)  
      java.util.Optional<java.lang.Double> getOptionalDoubleBytes​(java.lang.String paramName)  
      java.util.Optional<java.lang.Double> getOptionalDoubleUnitCount​(java.lang.String paramName)  
      java.util.Optional<java.lang.Integer> getOptionalInteger​(java.lang.String paramName)  
      java.util.Optional<java.lang.Long> getOptionalLong​(java.lang.String paramName)  
      java.util.Optional<java.lang.Long> getOptionalLongBytes​(java.lang.String paramName)  
      java.util.Optional<java.lang.Long> getOptionalLongUnitCount​(java.lang.String paramName)  
      java.util.Optional<java.lang.Long> getOptionalMillisUnit​(java.lang.String paramName)  
      java.util.Optional<ParameterMap.NamedParameter> getOptionalNamedParameter​(java.lang.String... paramName)  
      java.util.Optional<java.lang.String> getOptionalString​(java.lang.String... paramName)  
      int getSize()  
      java.util.Map<java.lang.String,​java.lang.String> getStringStringMap()  
      static ParameterMap parseOrException​(java.lang.String encodedParams)  
      static java.util.Optional<ParameterMap> parseParams​(java.lang.String encodedParams)  
      java.lang.Object put​(java.lang.String name, java.lang.Object value)  
      void putAll​(java.util.Map<? extends java.lang.String,​? extends java.lang.Object> toMerge)  
      java.lang.Object remove​(java.lang.Object key)  
      void removeListener​(ParameterMap.Listener listener)  
      void set​(java.lang.String paramName, java.lang.Object newValue)  
      boolean takeBoolOrDefault​(java.lang.String paramName, boolean defaultBoolValue)  
      java.lang.Double takeDoubleOrDefault​(java.lang.String paramName, double defaultDoubleValue)  
      int takeIntOrDefault​(java.lang.String paramName, int paramDefault)  
      java.lang.Long takeLongOrDefault​(java.lang.String paramName, java.lang.Long defaultLongValue)  
      java.lang.String takeStringOrDefault​(java.lang.String paramName, java.lang.String defaultStringValue)  
      java.lang.String toString()  
      • Methods inherited from class java.util.concurrent.ConcurrentHashMap

        compute, computeIfAbsent, computeIfPresent, contains, containsKey, containsValue, elements, equals, forEach, forEach, forEach, forEachEntry, forEachEntry, forEachKey, forEachKey, forEachValue, forEachValue, getOrDefault, hashCode, isEmpty, keys, keySet, keySet, mappingCount, merge, newKeySet, newKeySet, putIfAbsent, reduce, reduceEntries, reduceEntries, reduceEntriesToDouble, reduceEntriesToInt, reduceEntriesToLong, reduceKeys, reduceKeys, reduceKeysToDouble, reduceKeysToInt, reduceKeysToLong, reduceToDouble, reduceToInt, reduceToLong, reduceValues, reduceValues, reduceValuesToDouble, reduceValuesToInt, reduceValuesToLong, remove, replace, replace, replaceAll, search, searchEntries, searchKeys, searchValues, size, values
      • Methods inherited from class java.util.AbstractMap

        clone
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface javax.script.Bindings

        containsKey
      • Methods inherited from interface java.util.Map

        containsValue, equals, hashCode, isEmpty, keySet, size, values
    • Constructor Detail

      • ParameterMap

        public ParameterMap​(java.util.Map<java.lang.String,​java.lang.String> valueMap)
    • Method Detail

      • assertOnlyOneOf

        public void assertOnlyOneOf​(java.lang.String... paramName)
      • getOptionalString

        public java.util.Optional<java.lang.String> getOptionalString​(java.lang.String... paramName)
      • getOptionalNamedParameter

        public java.util.Optional<ParameterMap.NamedParameter> getOptionalNamedParameter​(java.lang.String... paramName)
      • getOptionalLong

        public java.util.Optional<java.lang.Long> getOptionalLong​(java.lang.String paramName)
      • getOptionalMillisUnit

        public java.util.Optional<java.lang.Long> getOptionalMillisUnit​(java.lang.String paramName)
      • getOptionalLongUnitCount

        public java.util.Optional<java.lang.Long> getOptionalLongUnitCount​(java.lang.String paramName)
      • getOptionalDoubleUnitCount

        public java.util.Optional<java.lang.Double> getOptionalDoubleUnitCount​(java.lang.String paramName)
      • getOptionalLongBytes

        public java.util.Optional<java.lang.Long> getOptionalLongBytes​(java.lang.String paramName)
      • getOptionalDoubleBytes

        public java.util.Optional<java.lang.Double> getOptionalDoubleBytes​(java.lang.String paramName)
      • getOptionalDouble

        public java.util.Optional<java.lang.Double> getOptionalDouble​(java.lang.String paramName)
      • getOptionalBoolean

        public java.util.Optional<java.lang.Boolean> getOptionalBoolean​(java.lang.String paramName)
      • takeLongOrDefault

        public java.lang.Long takeLongOrDefault​(java.lang.String paramName,
                                                java.lang.Long defaultLongValue)
      • takeDoubleOrDefault

        public java.lang.Double takeDoubleOrDefault​(java.lang.String paramName,
                                                    double defaultDoubleValue)
      • takeStringOrDefault

        public java.lang.String takeStringOrDefault​(java.lang.String paramName,
                                                    java.lang.String defaultStringValue)
      • takeIntOrDefault

        public int takeIntOrDefault​(java.lang.String paramName,
                                    int paramDefault)
      • takeBoolOrDefault

        public boolean takeBoolOrDefault​(java.lang.String paramName,
                                         boolean defaultBoolValue)
      • get

        public java.lang.Object get​(java.lang.Object key)
        Specified by:
        get in interface javax.script.Bindings
        Specified by:
        get in interface java.util.Map<java.lang.String,​java.lang.Object>
        Overrides:
        get in class java.util.concurrent.ConcurrentHashMap<java.lang.String,​java.lang.Object>
      • set

        public void set​(java.lang.String paramName,
                        java.lang.Object newValue)
      • put

        public java.lang.Object put​(java.lang.String name,
                                    java.lang.Object value)
        Specified by:
        put in interface javax.script.Bindings
        Specified by:
        put in interface java.util.Map<java.lang.String,​java.lang.Object>
        Overrides:
        put in class java.util.concurrent.ConcurrentHashMap<java.lang.String,​java.lang.Object>
      • putAll

        public void putAll​(java.util.Map<? extends java.lang.String,​? extends java.lang.Object> toMerge)
        Specified by:
        putAll in interface javax.script.Bindings
        Specified by:
        putAll in interface java.util.Map<java.lang.String,​java.lang.Object>
        Overrides:
        putAll in class java.util.concurrent.ConcurrentHashMap<java.lang.String,​java.lang.Object>
      • remove

        public java.lang.Object remove​(java.lang.Object key)
        Specified by:
        remove in interface javax.script.Bindings
        Specified by:
        remove in interface java.util.Map<java.lang.String,​java.lang.Object>
        Overrides:
        remove in class java.util.concurrent.ConcurrentHashMap<java.lang.String,​java.lang.Object>
      • clear

        public void clear()
        Specified by:
        clear in interface java.util.Map<java.lang.String,​java.lang.Object>
        Overrides:
        clear in class java.util.concurrent.ConcurrentHashMap<java.lang.String,​java.lang.Object>
      • entrySet

        public java.util.Set<java.util.Map.Entry<java.lang.String,​java.lang.Object>> entrySet()
        Specified by:
        entrySet in interface java.util.Map<java.lang.String,​java.lang.Object>
        Overrides:
        entrySet in class java.util.concurrent.ConcurrentHashMap<java.lang.String,​java.lang.Object>
      • getChangeCounter

        public java.util.concurrent.atomic.AtomicLong getChangeCounter()
        Get the atomic change counter for this parameter map. It getes incremented whenever any changes are made to the map.
        Returns:
        the atomic long change counter
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.util.concurrent.ConcurrentHashMap<java.lang.String,​java.lang.Object>
      • getSize

        public int getSize()
      • parseOrException

        public static ParameterMap parseOrException​(java.lang.String encodedParams)
      • parseParams

        public static java.util.Optional<ParameterMap> parseParams​(java.lang.String encodedParams)
      • getOptionalInteger

        public java.util.Optional<java.lang.Integer> getOptionalInteger​(java.lang.String paramName)
      • getStringStringMap

        public java.util.Map<java.lang.String,​java.lang.String> getStringStringMap()