Package io.engineblock.activityimpl
Class ParameterMap
- java.lang.Object
-
- java.util.AbstractMap<K,V>
-
- java.util.concurrent.ConcurrentHashMap<java.lang.String,java.lang.Object>
-
- io.engineblock.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
public class ParameterMap extends java.util.concurrent.ConcurrentHashMap<java.lang.String,java.lang.Object> implements javax.script.BindingsA 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 interfaceParameterMap.Listenerstatic classParameterMap.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>
-
-
Constructor Summary
Constructors Constructor Description ParameterMap(java.util.Map<java.lang.String,java.lang.String> valueMap)
-
Method Summary
Modifier and Type Method Description voidaddListener(ParameterMap.Listener listener)voidassertOnlyOneOf(java.lang.String... paramName)voidclear()java.util.Set<java.util.Map.Entry<java.lang.String,java.lang.Object>>entrySet()java.lang.Objectget(java.lang.Object key)java.util.concurrent.atomic.AtomicLonggetChangeCounter()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)intgetSize()java.util.Map<java.lang.String,java.lang.String>getStringStringMap()static ParameterMapparseOrException(java.lang.String encodedParams)static java.util.Optional<ParameterMap>parseParams(java.lang.String encodedParams)java.lang.Objectput(java.lang.String name, java.lang.Object value)voidputAll(java.util.Map<? extends java.lang.String,? extends java.lang.Object> toMerge)java.lang.Objectremove(java.lang.Object key)voidremoveListener(ParameterMap.Listener listener)voidset(java.lang.String paramName, java.lang.Object newValue)booleantakeBoolOrDefault(java.lang.String paramName, boolean defaultBoolValue)java.lang.DoubletakeDoubleOrDefault(java.lang.String paramName, double defaultDoubleValue)inttakeIntOrDefault(java.lang.String paramName, int paramDefault)java.lang.LongtakeLongOrDefault(java.lang.String paramName, java.lang.Long defaultLongValue)java.lang.StringtakeStringOrDefault(java.lang.String paramName, java.lang.String defaultStringValue)java.lang.StringtoString()-
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
-
-
-
-
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:
getin interfacejavax.script.Bindings- Specified by:
getin interfacejava.util.Map<java.lang.String,java.lang.Object>- Overrides:
getin classjava.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:
putin interfacejavax.script.Bindings- Specified by:
putin interfacejava.util.Map<java.lang.String,java.lang.Object>- Overrides:
putin classjava.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:
putAllin interfacejavax.script.Bindings- Specified by:
putAllin interfacejava.util.Map<java.lang.String,java.lang.Object>- Overrides:
putAllin classjava.util.concurrent.ConcurrentHashMap<java.lang.String,java.lang.Object>
-
remove
public java.lang.Object remove(java.lang.Object key)
- Specified by:
removein interfacejavax.script.Bindings- Specified by:
removein interfacejava.util.Map<java.lang.String,java.lang.Object>- Overrides:
removein classjava.util.concurrent.ConcurrentHashMap<java.lang.String,java.lang.Object>
-
clear
public void clear()
- Specified by:
clearin interfacejava.util.Map<java.lang.String,java.lang.Object>- Overrides:
clearin classjava.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:
entrySetin interfacejava.util.Map<java.lang.String,java.lang.Object>- Overrides:
entrySetin classjava.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:
toStringin classjava.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)
-
getStringStringMap
public java.util.Map<java.lang.String,java.lang.String> getStringStringMap()
-
-