Class ParameterMap

java.lang.Object
java.util.AbstractMap<K,​V>
java.util.concurrent.ConcurrentHashMap<java.lang.String,​java.lang.Object>
io.nosqlbench.engine.api.activityimpl.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, org.graalvm.polyglot.proxy.Proxy, org.graalvm.polyglot.proxy.ProxyObject

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

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.lang.Object getMember​(java.lang.String key)  
    java.lang.Object getMemberKeys()  
    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()  
    boolean hasMember​(java.lang.String key)  
    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)  
    void putMember​(java.lang.String key, org.graalvm.polyglot.Value value)  
    java.lang.Object remove​(java.lang.Object key)  
    void removeListener​(ParameterMap.Listener listener)  
    boolean removeMember​(java.lang.String key)  
    java.util.Optional<java.lang.String> removeOptionalString​(java.lang.String... paramName)  
    java.lang.Object removeSilent​(java.lang.Object key)  
    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)  
    static java.lang.String toJSON​(java.util.Map<?,​?> map)  
    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 Details

    • ParameterMap

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

    • assertOnlyOneOf

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

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

      public java.util.Optional<java.lang.String> removeOptionalString​(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>
    • removeSilent

      public java.lang.Object removeSilent​(java.lang.Object key)
    • 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>
    • addListener

      public void addListener​(ParameterMap.Listener listener)
    • removeListener

      public void removeListener​(ParameterMap.Listener listener)
    • 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)
    • getMember

      public java.lang.Object getMember​(java.lang.String key)
      Specified by:
      getMember in interface org.graalvm.polyglot.proxy.ProxyObject
    • getMemberKeys

      public java.lang.Object getMemberKeys()
      Specified by:
      getMemberKeys in interface org.graalvm.polyglot.proxy.ProxyObject
    • hasMember

      public boolean hasMember​(java.lang.String key)
      Specified by:
      hasMember in interface org.graalvm.polyglot.proxy.ProxyObject
    • putMember

      public void putMember​(java.lang.String key, org.graalvm.polyglot.Value value)
      Specified by:
      putMember in interface org.graalvm.polyglot.proxy.ProxyObject
    • removeMember

      public boolean removeMember​(java.lang.String key)
      Specified by:
      removeMember in interface org.graalvm.polyglot.proxy.ProxyObject
    • getStringStringMap

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

      public static java.lang.String toJSON​(java.util.Map<?,​?> map)