- java.lang.Object
-
- io.helidon.common.http.HashParameters
-
- All Implemented Interfaces:
Parameters
- Direct Known Subclasses:
WriteableBodyPartHeaders
public class HashParameters extends Object implements Parameters
AConcurrentSkipListMap
basedParameters
implementation with case-insensitive keys and immutableList
of values that needs to be copied on each write.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
HashParameters()
Creates a new instance.protected
HashParameters(Parameters initialContent)
Creates a new instance from provided data.protected
HashParameters(Map<String,List<String>> initialContent)
Creates a new instance from provided data.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description HashParameters
add(String key, Iterable<String> values)
Adds specified values tu association with the specified key (optional operation).HashParameters
add(String key, String... values)
Adds specified values tu association with the specified key (optional operation).HashParameters
addAll(Parameters parameters)
Copies all of the mappings from the specifiedparameters
to this instance adding values to existing associations (optional operation).List<String>
all(String name)
Returns an unmodifiable List of all of the values of the given named parameter.List<String>
computeIfAbsent(String key, Function<String,Iterable<String>> values)
If the specified key is not already associated with a value computes new association using the given function and returns emptyList
, else returns the current value (optional operation).List<String>
computeSingleIfAbsent(String key, Function<String,String> value)
If the specified key is not already associated with a value computes new association using the given function and returns emptyList
, else returns the current value (optional operation).static HashParameters
concat(Parameters... parameters)
Creates new instance ofHashParameters
as a concatenation of provided parameters.static HashParameters
concat(Iterable<Parameters> parameters)
Creates new instance ofHashParameters
as a concatenation of provided parameters.static HashParameters
create()
Creates a new empty instanceHashParameters
.static HashParameters
create(Parameters initialContent)
Creates a new instanceHashParameters
from provided data.static HashParameters
create(Map<String,List<String>> initialContent)
Creates a new instanceHashParameters
from provided data.boolean
equals(Object o)
Optional<String>
first(String name)
Returns anOptional
containing the first value of the given parameter (and possibly multi-valued) parameter.int
hashCode()
List<String>
put(String key, Iterable<String> values)
Associates specified values with the specified key (optional operation).List<String>
put(String key, String... values)
Associates specified values with the specified key (optional operation).HashParameters
putAll(Parameters parameters)
Copies all of the mappings from the specifiedparameters
to this instance replacing values of existing associations (optional operation).List<String>
putIfAbsent(String key, Iterable<String> values)
If the specified key is not already associated with a value associates it with the given value and returns emptyList
, else returns the current value (optional operation).List<String>
putIfAbsent(String key, String... values)
If the specified key is not already associated with a value associates it with the given value and returns emptyList
, else returns the current value (optional operation).List<String>
remove(String key)
Removes the mapping for a key if it is present (optional operation).Map<String,List<String>>
toMap()
Returns a copy of parameters as a Map.String
toString()
-
-
-
Constructor Detail
-
HashParameters
protected HashParameters()
Creates a new instance.
-
HashParameters
protected HashParameters(Map<String,List<String>> initialContent)
Creates a new instance from provided data. Initial data are copied.- Parameters:
initialContent
- initial content.
-
HashParameters
protected HashParameters(Parameters initialContent)
Creates a new instance from provided data. Initial data is copied.- Parameters:
initialContent
- initial content.
-
-
Method Detail
-
create
public static HashParameters create()
Creates a new empty instanceHashParameters
.- Returns:
- a new instance of
HashParameters
.
-
create
public static HashParameters create(Map<String,List<String>> initialContent)
Creates a new instanceHashParameters
from provided data. Initial data is copied.- Parameters:
initialContent
- initial content.- Returns:
- a new instance of
HashParameters
initialized with the given content.
-
create
public static HashParameters create(Parameters initialContent)
Creates a new instanceHashParameters
from provided data. Initial data is copied.- Parameters:
initialContent
- initial content.- Returns:
- a new instance of
HashParameters
initialized with the given content.
-
concat
public static HashParameters concat(Parameters... parameters)
Creates new instance ofHashParameters
as a concatenation of provided parameters. Values for keys found across the provided parameters are "concatenated" into aList
entry for their respective key in the createdHashParameters
instance.- Parameters:
parameters
- parameters to concatenate.- Returns:
- a new instance of
HashParameters
that represents the concatenation of the provided parameters.
-
concat
public static HashParameters concat(Iterable<Parameters> parameters)
Creates new instance ofHashParameters
as a concatenation of provided parameters. Values for keys found across the provided parameters are "concatenated" into aList
entry for their respective key in the createdHashParameters
instance.- Parameters:
parameters
- parameters to concatenate.- Returns:
- a new instance of
HashParameters
that represents the concatenation of the provided parameters.
-
first
public Optional<String> first(String name)
Description copied from interface:Parameters
Returns anOptional
containing the first value of the given parameter (and possibly multi-valued) parameter. If the parameter is not present, then the returned Optional is empty.- Specified by:
first
in interfaceParameters
- Parameters:
name
- the parameter name- Returns:
- an
Optional<V>
for the first named value
-
all
public List<String> all(String name)
Description copied from interface:Parameters
Returns an unmodifiable List of all of the values of the given named parameter. Always returns a List, which may be empty if the parameter is not present.- Specified by:
all
in interfaceParameters
- Parameters:
name
- the parameter name- Returns:
- a
List
of values with zero or greater size
-
put
public List<String> put(String key, String... values)
Description copied from interface:Parameters
Associates specified values with the specified key (optional operation). If parameters previously contained a mapping for the key, the old values fully replaced.- Specified by:
put
in interfaceParameters
- Parameters:
key
- key with which the specified value is to be associatedvalues
- value to be associated with the specified key- Returns:
- the previous values associated with key, or empty
List
if there was no mapping for key.
-
put
public List<String> put(String key, Iterable<String> values)
Description copied from interface:Parameters
Associates specified values with the specified key (optional operation). If parameters previously contained a mapping for the key, the old values fully replaced.- Specified by:
put
in interfaceParameters
- Parameters:
key
- key with which the specified value is to be associatedvalues
- value to be associated with the specified key. Ifnull
then association will be removed.- Returns:
- the previous values associated with key, or empty
List
if there was no mapping for key.
-
putIfAbsent
public List<String> putIfAbsent(String key, String... values)
Description copied from interface:Parameters
If the specified key is not already associated with a value associates it with the given value and returns emptyList
, else returns the current value (optional operation).- Specified by:
putIfAbsent
in interfaceParameters
- Parameters:
key
- key with which the specified value is to be associatedvalues
- value to be associated with the specified key- Returns:
- the previous values associated with key, or empty
List
if there was no mapping for key.
-
putIfAbsent
public List<String> putIfAbsent(String key, Iterable<String> values)
Description copied from interface:Parameters
If the specified key is not already associated with a value associates it with the given value and returns emptyList
, else returns the current value (optional operation).- Specified by:
putIfAbsent
in interfaceParameters
- Parameters:
key
- key with which the specified value is to be associatedvalues
- value to be associated with the specified key- Returns:
- the previous values associated with key, or empty
List
if there was no mapping for key.
-
computeIfAbsent
public List<String> computeIfAbsent(String key, Function<String,Iterable<String>> values)
Description copied from interface:Parameters
If the specified key is not already associated with a value computes new association using the given function and returns emptyList
, else returns the current value (optional operation).- Specified by:
computeIfAbsent
in interfaceParameters
- Parameters:
key
- key with which the specified value is to be associatedvalues
- value to be associated with the specified key- Returns:
- the current (potentially computed) values associated with key,
or empty
List
if function returnsnull
-
computeSingleIfAbsent
public List<String> computeSingleIfAbsent(String key, Function<String,String> value)
Description copied from interface:Parameters
If the specified key is not already associated with a value computes new association using the given function and returns emptyList
, else returns the current value (optional operation).- Specified by:
computeSingleIfAbsent
in interfaceParameters
- Parameters:
key
- a key with which the specified value is to be associatedvalue
- a single value to be associated with the specified key- Returns:
- the current (potentially computed) values associated with key,
or empty
List
if function returnsnull
-
putAll
public HashParameters putAll(Parameters parameters)
Description copied from interface:Parameters
Copies all of the mappings from the specifiedparameters
to this instance replacing values of existing associations (optional operation).- Specified by:
putAll
in interfaceParameters
- Parameters:
parameters
- to copy.- Returns:
- this instance of
Parameters
-
add
public HashParameters add(String key, String... values)
Description copied from interface:Parameters
Adds specified values tu association with the specified key (optional operation). If parameters doesn't contains mapping, new mapping is created.- Specified by:
add
in interfaceParameters
- Parameters:
key
- key with which the specified value is to be associatedvalues
- value to be add to association with the specified key- Returns:
- this instance of
Parameters
-
add
public HashParameters add(String key, Iterable<String> values)
Description copied from interface:Parameters
Adds specified values tu association with the specified key (optional operation). If parameters doesn't contains mapping, new mapping is created.- Specified by:
add
in interfaceParameters
- Parameters:
key
- key with which the specified value is to be associatedvalues
- value to be add to association with the specified key. Ifnull
then noting will be add.- Returns:
- this instance of
Parameters
-
addAll
public HashParameters addAll(Parameters parameters)
Description copied from interface:Parameters
Copies all of the mappings from the specifiedparameters
to this instance adding values to existing associations (optional operation).- Specified by:
addAll
in interfaceParameters
- Parameters:
parameters
- to copy.- Returns:
- this instance of
Parameters
-
remove
public List<String> remove(String key)
Description copied from interface:Parameters
Removes the mapping for a key if it is present (optional operation).- Specified by:
remove
in interfaceParameters
- Parameters:
key
- key whose mapping is to be removed.- Returns:
- the previous value associated with key, or empty
List
.
-
toMap
public Map<String,List<String>> toMap()
Description copied from interface:Parameters
Returns a copy of parameters as a Map. This interface should only be used when it is required to iterate over the entire set of parameters.- Specified by:
toMap
in interfaceParameters
- Returns:
- the
Map
-
-