- Direct Known Subclasses:
AttributeMap
IValueMap implementation that holds values, parses Strings, and
exposes a variety of convenience methods.
In addition to a no-arg constructor and a copy constructor that takes a Map
argument, ValueMaps 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
Fields -
Constructor Summary
ConstructorsConstructorDescriptionValueMap()Constructs emptyValueMap.Constructor.Constructor.ValueMap(String keyValuePairs, String delimiter, MetaPattern valuePattern) Constructor.Copy constructor. -
Method Summary
Modifier and TypeMethodDescriptionfinal ObjectAdds the value to thisValueMapwith the given key.final voidclear()getAsBoolean(String key) Retrieves aBooleanvalue by key.booleangetAsBoolean(String key, boolean defaultValue) Retrieves abooleanvalue by key.getAsDouble(String key) Retrieves aDoublevalue by key.doublegetAsDouble(String key, double defaultValue) Retrieves adoublevalue by key.getAsDuration(String key) Retrieves aDurationvalue by key.getAsDuration(String key, Duration defaultValue) Retrieves aDurationvalue by key.<T extends Enum<T>>
TRetrieves anEnumvalue by key.<T extends Enum<T>>
TRetrieves anEnumvalue by key.<T extends Enum<T>>
TRetrieves anEnumvalue by key.getAsInstant(String key) Retrieves aTimevalue by key.getAsInteger(String key) Retrieves anIntegervalue by key.intgetAsInteger(String key, int defaultValue) Retrieves anintegervalue by key.Retrieves aLongvalue by key.longRetrieves alongvalue by key.Retrieves aTimevalue by key.final booleangetBoolean(String key) Retrieves abooleanvalue by key.final CharSequencegetCharSequence(String key) Retrieves aCharSequenceby key.final doubleRetrieves adoublevalue by key.final doubleRetrieves adoublevalue by key, using a default value if not found.final DurationgetDuration(String key) Retrieves aDurationby key.final InstantgetInstant(String key) Retrieves aInstantobject by key.final intRetrieves anintvalue by key.final intRetrieves anintvalue by key, using a default value if not found.Provided that the hash key is aStringand 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 longRetrieves alongvalue by key.final longRetrieves alongvalue by key, using a default value if not found.final StringRetrieves aStringby key.final StringRetrieves aStringby key, using a default value if not found.String[]getStringArray(String key) Retrieves aStringarray by key.getStringValue(String key) Retrieves aStringValueobject by key.final booleanReturns whether or not thisIValueMapis immutable.final IValueMapMakes thisIValueMapimmutable by changing the underlying map representation to aCollections.unmodifiableMap.voidtoString()Generates aStringrepresentation of this object.Methods inherited from class java.util.LinkedHashMap
containsValue, entrySet, forEach, get, getOrDefault, keySet, removeEldestEntry, replaceAll, valuesMethods inherited from class java.util.HashMap
clone, compute, computeIfAbsent, computeIfPresent, containsKey, isEmpty, merge, putIfAbsent, remove, replace, replace, sizeMethods inherited from class java.util.AbstractMap
equals, hashCodeMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods 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- theValueMapto 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- delimiterStringused 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:IValueMapRetrieves abooleanvalue by key.- Specified by:
getBooleanin interfaceIValueMap- Parameters:
key- the key- Returns:
- the value
- Throws:
StringValueConversionException
-
getDouble
Description copied from interface:IValueMapRetrieves adoublevalue by key.- Specified by:
getDoublein interfaceIValueMap- Parameters:
key- the key- Returns:
- the value
- Throws:
StringValueConversionException
-
getDouble
Description copied from interface:IValueMapRetrieves adoublevalue by key, using a default value if not found. -
getDuration
Description copied from interface:IValueMapRetrieves aDurationby key.- Specified by:
getDurationin interfaceIValueMap- Parameters:
key- the key- Returns:
- the
Durationvalue - Throws:
StringValueConversionException
-
getInt
Description copied from interface:IValueMapRetrieves anintvalue by key.- Specified by:
getIntin interfaceIValueMap- Parameters:
key- the key- Returns:
- the value
- Throws:
StringValueConversionException
-
getInt
Description copied from interface:IValueMapRetrieves anintvalue by key, using a default value if not found. -
getLong
Description copied from interface:IValueMapRetrieves alongvalue by key.- Specified by:
getLongin interfaceIValueMap- Parameters:
key- the key- Returns:
- the value
- Throws:
StringValueConversionException
-
getLong
Description copied from interface:IValueMapRetrieves alongvalue by key, using a default value if not found. -
getString
Description copied from interface:IValueMapRetrieves aStringby key, using a default value if not found. -
getString
Description copied from interface:IValueMapRetrieves aStringby key. -
getCharSequence
Description copied from interface:IValueMapRetrieves aCharSequenceby key.- Specified by:
getCharSequencein interfaceIValueMap- Parameters:
key- the key- Returns:
- the
CharSequence
-
getStringArray
Description copied from interface:IValueMapRetrieves aStringarray by key. If the value was aString[]it will be returned directly. If it was aStringit will be converted to aStringarray of length one. If it was an array of another type, aStringarray will be made and each element will be converted to aString.- Specified by:
getStringArrayin interfaceIValueMap- Parameters:
key- the key- Returns:
- the
Stringarray of that key
-
getStringValue
Description copied from interface:IValueMapRetrieves aStringValueobject by key.- Specified by:
getStringValuein interfaceIValueMap- Parameters:
key- the key- Returns:
- the
StringValueobject
-
getInstant
Description copied from interface:IValueMapRetrieves aInstantobject by key.- Specified by:
getInstantin interfaceIValueMap- Parameters:
key- the key- Returns:
- the
Instantobject - Throws:
StringValueConversionException
-
isImmutable
Description copied from interface:IValueMapReturns whether or not thisIValueMapis immutable.- Specified by:
isImmutablein interfaceIValueMap- Returns:
- whether or not this
IValueMapis immutable
-
makeImmutable
Description copied from interface:IValueMapMakes thisIValueMapimmutable by changing the underlying map representation to aCollections.unmodifiableMap. After calling this method, any attempt to modify thisIValueMapwill result in aRuntimeExceptionbeing thrown by theCollectionsframework.- Specified by:
makeImmutablein interfaceIValueMap- Returns:
- this
IValueMap
-
put
-
add
Adds the value to thisValueMapwith the given key. If the key already is in theValueMapit will combine the values into aStringarray, 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
Stringarray with the combined values
-
putAll
-
remove
-
getKey
Description copied from interface:IValueMapProvided that the hash key is aStringand 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 aStringrepresentation of this object.- Overrides:
toStringin classAbstractMap<String,Object> - Returns:
Stringrepresentation of thisValueMapconsistent with the tag-attribute style of markup elements. For example:a="x" b="y" c="z".
-
getAsBoolean
Description copied from interface:IValueMapRetrieves aBooleanvalue by key.- Specified by:
getAsBooleanin 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:IValueMapRetrieves abooleanvalue by key.- Specified by:
getAsBooleanin 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:IValueMapRetrieves anIntegervalue by key.- Specified by:
getAsIntegerin 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:IValueMapRetrieves anintegervalue by key.- Specified by:
getAsIntegerin 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:IValueMapRetrieves aLongvalue by key. -
getAsLong
Description copied from interface:IValueMapRetrieves alongvalue by key. -
getAsDouble
Description copied from interface:IValueMapRetrieves aDoublevalue by key.- Specified by:
getAsDoublein 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:IValueMapRetrieves adoublevalue by key.- Specified by:
getAsDoublein 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:IValueMapRetrieves aDurationvalue by key.- Specified by:
getAsDurationin 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:IValueMapRetrieves aDurationvalue by key.- Specified by:
getAsDurationin 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:IValueMapRetrieves aTimevalue by key.- Specified by:
getAsInstantin 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:IValueMapRetrieves aTimevalue by key. -
getAsEnum
Description copied from interface:IValueMapRetrieves anEnumvalue by key. -
getAsEnum
Description copied from interface:IValueMapRetrieves anEnumvalue by key. -
getAsEnum
Description copied from interface:IValueMapRetrieves anEnumvalue by key.- Specified by:
getAsEnumin 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
-