- Direct Known Subclasses:
AttributeMap
IValueMap
implementation that holds values, parses String
s, and
exposes a variety of convenience methods.
In addition to a no-arg constructor and a copy constructor that takes a Map
argument, ValueMap
s can be constructed using a parsing constructor.
ValueMap(String)
will parse values from the string in comma separated key/value
assignment pairs. For example, new ValueMap("a=9,b=foo")
.
Values can be retrieved from the ValueMap
in the usual way or with methods that do
handy conversions to various types, including String
, StringValue
,
int
, long
, double
, Time
and
Duration
.
The makeImmutable
method will make the underlying Map
immutable.
Further attempts to change the Map
will result in a RuntimeException
.
The toString
method converts a ValueMap
object to a readable key/value
string for diagnostics.
- Since:
- 1.2.6
- Author:
- Jonathan Locke, Doug Donohoe
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K extends Object,
V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object, V extends Object> -
Field Summary
-
Constructor Summary
ConstructorDescriptionValueMap()
Constructs emptyValueMap
.Constructor.Constructor.ValueMap
(String keyValuePairs, String delimiter, MetaPattern valuePattern) Constructor.Copy constructor. -
Method Summary
Modifier and TypeMethodDescriptionfinal Object
Adds the value to thisValueMap
with the given key.final void
clear()
getAsBoolean
(String key) Retrieves aBoolean
value by key.boolean
getAsBoolean
(String key, boolean defaultValue) Retrieves aboolean
value by key.getAsDouble
(String key) Retrieves aDouble
value by key.double
getAsDouble
(String key, double defaultValue) Retrieves adouble
value by key.getAsDuration
(String key) Retrieves aDuration
value by key.getAsDuration
(String key, Duration defaultValue) Retrieves aDuration
value by key.<T extends Enum<T>>
TRetrieves anEnum
value by key.<T extends Enum<T>>
TRetrieves anEnum
value by key.<T extends Enum<T>>
TRetrieves anEnum
value by key.getAsInstant
(String key) Retrieves aTime
value by key.getAsInteger
(String key) Retrieves anInteger
value by key.int
getAsInteger
(String key, int defaultValue) Retrieves aninteger
value by key.Retrieves aLong
value by key.long
Retrieves along
value by key.Retrieves aTime
value by key.final boolean
getBoolean
(String key) Retrieves aboolean
value by key.final CharSequence
getCharSequence
(String key) Retrieves aCharSequence
by key.final double
Retrieves adouble
value by key.final double
Retrieves adouble
value by key, using a default value if not found.final Duration
getDuration
(String key) Retrieves aDuration
by key.final Instant
getInstant
(String key) Retrieves aInstant
object by key.final int
Retrieves anint
value by key.final int
Retrieves anint
value by key, using a default value if not found.Provided that the hash key is aString
and you need to access the value ignoring the key's case (upper- or lowercase letters), then you may use this method to get the correct writing.final long
Retrieves along
value by key.final long
Retrieves along
value by key, using a default value if not found.final String
Retrieves aString
by key.final String
Retrieves aString
by key, using a default value if not found.String[]
getStringArray
(String key) Retrieves aString
array by key.getStringValue
(String key) Retrieves aStringValue
object by key.final boolean
Returns whether or not thisIValueMap
is immutable.final IValueMap
Makes thisIValueMap
immutable by changing the underlying map representation to aCollections.unmodifiableMap
.void
toString()
Generates aString
representation of this object.Methods inherited from class java.util.LinkedHashMap
containsValue, entrySet, forEach, get, getOrDefault, keySet, removeEldestEntry, replaceAll, values
Methods inherited from class java.util.HashMap
clone, compute, computeIfAbsent, computeIfPresent, containsKey, isEmpty, merge, putIfAbsent, remove, replace, replace, size
Methods inherited from class java.util.AbstractMap
equals, hashCode
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, containsValue, entrySet, equals, forEach, get, getOrDefault, hashCode, isEmpty, keySet, merge, putIfAbsent, remove, replace, replace, replaceAll, size, values
-
Field Details
-
EMPTY_MAP
an emptyValueMap
.
-
-
Constructor Details
-
ValueMap
public ValueMap()Constructs emptyValueMap
. -
ValueMap
Copy constructor.- Parameters:
map
- theValueMap
to copy
-
ValueMap
Constructor.NOTE: Please use
RequestUtils.decodeParameters()
if you wish to properly decode a request URL.- Parameters:
keyValuePairs
- list of key/value pairs separated by commas. For example, "param1=foo,param2=bar
"
-
ValueMap
Constructor.NOTE: Please use
RequestUtils.decodeParameters()
if you wish to properly decode a request URL.- Parameters:
keyValuePairs
- list of key/value pairs separated by a given delimiter. For example, "param1=foo,param2=bar
" where delimiter is ",
".delimiter
- delimiterString
used to separate key/value pairs
-
ValueMap
Constructor.- Parameters:
keyValuePairs
- list of key/value pairs separated by a given delimiter. For example, "param1=foo,param2=bar
" where delimiter is ",
".delimiter
- delimiter string used to separate key/value pairsvaluePattern
- pattern for value. To pass a simple regular expression, pass "new MetaPattern(regexp)
".
-
-
Method Details
-
clear
-
getBoolean
Description copied from interface:IValueMap
Retrieves aboolean
value by key.- Specified by:
getBoolean
in interfaceIValueMap
- Parameters:
key
- the key- Returns:
- the value
- Throws:
StringValueConversionException
-
getDouble
Description copied from interface:IValueMap
Retrieves adouble
value by key.- Specified by:
getDouble
in interfaceIValueMap
- Parameters:
key
- the key- Returns:
- the value
- Throws:
StringValueConversionException
-
getDouble
Description copied from interface:IValueMap
Retrieves adouble
value by key, using a default value if not found. -
getDuration
Description copied from interface:IValueMap
Retrieves aDuration
by key.- Specified by:
getDuration
in interfaceIValueMap
- Parameters:
key
- the key- Returns:
- the
Duration
value - Throws:
StringValueConversionException
-
getInt
Description copied from interface:IValueMap
Retrieves anint
value by key.- Specified by:
getInt
in interfaceIValueMap
- Parameters:
key
- the key- Returns:
- the value
- Throws:
StringValueConversionException
-
getInt
Description copied from interface:IValueMap
Retrieves anint
value by key, using a default value if not found. -
getLong
Description copied from interface:IValueMap
Retrieves along
value by key.- Specified by:
getLong
in interfaceIValueMap
- Parameters:
key
- the key- Returns:
- the value
- Throws:
StringValueConversionException
-
getLong
Description copied from interface:IValueMap
Retrieves along
value by key, using a default value if not found. -
getString
Description copied from interface:IValueMap
Retrieves aString
by key, using a default value if not found. -
getString
Description copied from interface:IValueMap
Retrieves aString
by key. -
getCharSequence
Description copied from interface:IValueMap
Retrieves aCharSequence
by key.- Specified by:
getCharSequence
in interfaceIValueMap
- Parameters:
key
- the key- Returns:
- the
CharSequence
-
getStringArray
Description copied from interface:IValueMap
Retrieves aString
array by key. If the value was aString[]
it will be returned directly. If it was aString
it will be converted to aString
array of length one. If it was an array of another type, aString
array will be made and each element will be converted to aString
.- Specified by:
getStringArray
in interfaceIValueMap
- Parameters:
key
- the key- Returns:
- the
String
array of that key
-
getStringValue
Description copied from interface:IValueMap
Retrieves aStringValue
object by key.- Specified by:
getStringValue
in interfaceIValueMap
- Parameters:
key
- the key- Returns:
- the
StringValue
object
-
getInstant
Description copied from interface:IValueMap
Retrieves aInstant
object by key.- Specified by:
getInstant
in interfaceIValueMap
- Parameters:
key
- the key- Returns:
- the
Instant
object - Throws:
StringValueConversionException
-
isImmutable
Description copied from interface:IValueMap
Returns whether or not thisIValueMap
is immutable.- Specified by:
isImmutable
in interfaceIValueMap
- Returns:
- whether or not this
IValueMap
is immutable
-
makeImmutable
Description copied from interface:IValueMap
Makes thisIValueMap
immutable by changing the underlying map representation to aCollections.unmodifiableMap
. After calling this method, any attempt to modify thisIValueMap
will result in aRuntimeException
being thrown by theCollections
framework.- Specified by:
makeImmutable
in interfaceIValueMap
- Returns:
- this
IValueMap
-
put
-
add
Adds the value to thisValueMap
with the given key. If the key already is in theValueMap
it will combine the values into aString
array, else it will just store the value itself.- Parameters:
key
- the key to store the value undervalue
- the value that must be added/merged to theValueMap
- Returns:
- the value itself if there was no previous value, or a
String
array with the combined values
-
putAll
-
remove
-
getKey
Description copied from interface:IValueMap
Provided that the hash key is aString
and you need to access the value ignoring the key's case (upper- or lowercase letters), then you may use this method to get the correct writing. -
toString
Generates aString
representation of this object.- Overrides:
toString
in classAbstractMap<String,
Object> - Returns:
String
representation of thisValueMap
consistent with the tag-attribute style of markup elements. For example:a="x" b="y" c="z"
.
-
getAsBoolean
Description copied from interface:IValueMap
Retrieves aBoolean
value by key.- Specified by:
getAsBoolean
in interfaceIValueMap
- Parameters:
key
- the key- Returns:
- the value or null if value is not a valid boolean or no value is in this
IValueMap
-
getAsBoolean
Description copied from interface:IValueMap
Retrieves aboolean
value by key.- Specified by:
getAsBoolean
in interfaceIValueMap
- Parameters:
key
- the keydefaultValue
- the default to return- Returns:
- the value or defaultValue if value is not a valid boolean or no value is in this
IValueMap
-
getAsInteger
Description copied from interface:IValueMap
Retrieves anInteger
value by key.- Specified by:
getAsInteger
in interfaceIValueMap
- Parameters:
key
- the key- Returns:
- the value or null if value is not a valid integer or no value is in this
IValueMap
-
getAsInteger
Description copied from interface:IValueMap
Retrieves aninteger
value by key.- Specified by:
getAsInteger
in interfaceIValueMap
- Parameters:
key
- the keydefaultValue
- the default to return- Returns:
- the value or defaultValue if value is not a valid integer or no value is in this
IValueMap
-
getAsLong
Description copied from interface:IValueMap
Retrieves aLong
value by key. -
getAsLong
Description copied from interface:IValueMap
Retrieves along
value by key. -
getAsDouble
Description copied from interface:IValueMap
Retrieves aDouble
value by key.- Specified by:
getAsDouble
in interfaceIValueMap
- Parameters:
key
- the key- Returns:
- the value or null if value is not a valid double or no value is in this
IValueMap
-
getAsDouble
Description copied from interface:IValueMap
Retrieves adouble
value by key.- Specified by:
getAsDouble
in interfaceIValueMap
- Parameters:
key
- the keydefaultValue
- the default to return- Returns:
- the value or defaultValue if value is not a valid double or no value is in this
IValueMap
-
getAsDuration
Description copied from interface:IValueMap
Retrieves aDuration
value by key.- Specified by:
getAsDuration
in interfaceIValueMap
- Parameters:
key
- the key- Returns:
- the value or null if value is not a valid Duration or no value is in this
IValueMap
-
getAsDuration
Description copied from interface:IValueMap
Retrieves aDuration
value by key.- Specified by:
getAsDuration
in interfaceIValueMap
- Parameters:
key
- the keydefaultValue
- the default to return- Returns:
- the value or defaultValue if value is not a valid Duration or no value is in this
IValueMap
-
getAsInstant
Description copied from interface:IValueMap
Retrieves aTime
value by key.- Specified by:
getAsInstant
in interfaceIValueMap
- Parameters:
key
- the key- Returns:
- the value or null if value is not a valid Time or no value is in this
IValueMap
-
getAsTime
Description copied from interface:IValueMap
Retrieves aTime
value by key. -
getAsEnum
Description copied from interface:IValueMap
Retrieves anEnum
value by key. -
getAsEnum
Description copied from interface:IValueMap
Retrieves anEnum
value by key. -
getAsEnum
Description copied from interface:IValueMap
Retrieves anEnum
value by key.- Specified by:
getAsEnum
in interfaceIValueMap
- Type Parameters:
T
- type of enum- Parameters:
key
- the keyeClass
- the enumeration classdefaultValue
- the default value from the Enumeration (may be null)- Returns:
- the value or defaultValue if value is not a valid value of the Enumeration or no
value is in this
IValueMap
-