java.lang.Object
io.helidon.common.http.HashParameters
- Direct Known Subclasses:
HashHeaders
A
Map-based Parameters implementation with keys and immutable List of values that needs to be copied
on each write.
By default, this implementation uses case-sensitive keys but a subclass can override the map factory methods
emptyMapForReads() and emptyMapForUpdates() to control the specific type of map used.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classIterablearound an array (to avoid uses ofArray.asList) to get anIterable. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedCreates a new instance.protectedHashParameters(Parameters initialContent) Creates a new instance from provided data.protectedCreates a new instance from provided data, typically either anotherParametersinstance or a map's entry set.protectedHashParameters(Map<String, List<String>> initialContent) Creates a new instance from provided data. -
Method Summary
Modifier and TypeMethodDescriptionAdds specified values to association with the specified key (optional operation).Adds specified values to association with the specified key (optional operation).addAll(Parameters parameters) Copies all of the mappings from the specifiedparametersto this instance adding values to existing associations (optional operation).Returns an unmodifiable List of all of the values of the given named parameter.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).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 HashParametersconcat(Parameters... parameters) Creates new instance ofHashParametersas a concatenation of provided parameters.protected static <T extends HashParameters>
Tconcat(Iterable<? extends Iterable<Map.Entry<String, List<String>>>> contentSources, Supplier<T> emptyFactory, Function<Iterable<Map.Entry<String, List<String>>>, T> singletonFactory) Creates a new instance of the correctHashParameterssubclass as a concatenation of the provided sources.static HashParametersconcat(Iterable<Parameters> parameters) Creates new instance ofHashParametersas a concatenation of provided parameters.static HashParameterscreate()Creates a new empty instanceHashParameters.static HashParameterscreate(Parameters initialContent) Creates a new instanceHashParametersfrom provided data.static HashParametersCreates a new instance ofHashParametersfrom a single provided Parameter or Map.static HashParametersCreates a new instance ofHashParametersfrom a single provided Map.Returns an emptyMapsuitable for case-sensitivity or case-insensitivity and optimized for read-only access.protected ConcurrentMap<String,List<String>> Returns an emptyMapsuitable for case-sensitivity or case-insensitivity and for read-write access.booleanReturns anOptionalcontaining the first value of the given parameter (and possibly multi-valued) parameter.inthashCode()iterator()Associates specified values with the specified key (optional operation).Associates specified values with the specified key (optional operation).putAll(Parameters parameters) Copies all of the mappings from the specifiedparametersto this instance replacing values of existing associations (optional operation).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).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).Removes the mapping for a key if it is present (optional operation).toMap()Returns a copy of parameters as a Map.toString()Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
HashParameters
protected HashParameters()Creates a new instance. -
HashParameters
Creates a new instance from provided data. Initial data are copied.- Parameters:
initialContent- initial content.
-
HashParameters
Creates a new instance from provided data, typically either anotherParametersinstance or a map's entry set. Initial data are copied.- Parameters:
initialContent- initial content
-
HashParameters
Creates a new instance from provided data. Initial data is copied.- Parameters:
initialContent- initial content.
-
-
Method Details
-
create
Creates a new empty instanceHashParameters.- Returns:
- a new instance of
HashParameters.
-
create
Creates a new instance ofHashParametersfrom a single provided Map. Initial data is copied.- Parameters:
initialContent- initial content.- Returns:
- a new instance of
HashParametersinitialized with the given content.
-
create
Creates a new instanceHashParametersfrom provided data. Initial data is copied.- Parameters:
initialContent- initial content.- Returns:
- a new instance of
HashParametersinitialized with the given content.
-
create
Creates a new instance ofHashParametersfrom a single provided Parameter or Map. Initial data is copied.- Parameters:
initialContent- initial content.- Returns:
- a new instance of
HashParametersinitialized with the given content.
-
concat
Creates new instance ofHashParametersas a concatenation of provided parameters. Values for keys found across the provided parameters are "concatenated" into aListentry for their respective key in the createdHashParametersinstance.- Parameters:
parameters- parameters to concatenate.- Returns:
- a new instance of
HashParametersthat represents the concatenation of the provided parameters.
-
concat
Creates new instance ofHashParametersas a concatenation of provided parameters. Values for keys found across the provided parameters are "concatenated" into aListentry for their respective key in the createdHashParametersinstance.- Parameters:
parameters- parameters to concatenate.- Returns:
- a new instance of
HashParametersthat represents the concatenation of the provided parameters.
-
iterator
Description copied from interface:ParametersImplementations should override this default with a more efficient implementation.
-
concat
protected static <T extends HashParameters> T concat(Iterable<? extends Iterable<Map.Entry<String, List<String>>>> contentSources, Supplier<T> emptyFactory, Function<Iterable<Map.Entry<String, List<String>>>, T> singletonFactory) Creates a new instance of the correctHashParameterssubclass as a concatenation of the provided sources. Values for keys found across the sources are "concatenated" into aListentry for their respective key in the createdHashParameters(or subclass) instance.- Type Parameters:
T- type of the named value lists implementation to create- Parameters:
contentSources-Iterableover the sources whose contents are to be combinedemptyFactory- factory for an empty named value lists implementationsingletonFactory- factory for a named value lists implementation preloaded with one source's data- Returns:
- new named value lists implementation containing the combined data from the sources
-
emptyMapForUpdates
Returns an emptyMapsuitable for case-sensitivity or case-insensitivity and for read-write access.Typical implementations should return a concurrent implementation.
- Returns:
- empty
Mapimplementation with correct case-sensitivity behavior and suitable for read-write access
-
emptyMapForReads
Returns an emptyMapsuitable for case-sensitivity or case-insensitivity and optimized for read-only access.Typical implementations should not return a concurrent implementation.
- Returns:
- empty
Mapimplementation with correct case-sensitivity behavior and optimized for read-only access
-
first
Description copied from interface:ParametersReturns anOptionalcontaining 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:
firstin interfaceParameters- Parameters:
name- the parameter name- Returns:
- an
Optional<V>for the first named value
-
all
Description copied from interface:ParametersReturns 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:
allin interfaceParameters- Parameters:
name- the parameter name- Returns:
- a
Listof values with zero or greater size
-
put
Description copied from interface:ParametersAssociates specified values with the specified key (optional operation). If parameters previously contained a mapping for the key, the old values fully replaced.- Specified by:
putin 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
Listif there was no mapping for key.
-
put
Description copied from interface:ParametersAssociates specified values with the specified key (optional operation). If parameters previously contained a mapping for the key, the old values fully replaced.- Specified by:
putin interfaceParameters- Parameters:
key- key with which the specified value is to be associatedvalues- value to be associated with the specified key. Ifnullthen association will be removed.- Returns:
- the previous values associated with key, or empty
Listif there was no mapping for key.
-
putIfAbsent
Description copied from interface:ParametersIf 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:
putIfAbsentin 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
Listif there was no mapping for key.
-
putIfAbsent
Description copied from interface:ParametersIf 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:
putIfAbsentin 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
Listif there was no mapping for key.
-
computeIfAbsent
Description copied from interface:ParametersIf 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:
computeIfAbsentin 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
Listif function returnsnull
-
computeSingleIfAbsent
Description copied from interface:ParametersIf 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:
computeSingleIfAbsentin 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
Listif function returnsnull
-
putAll
Description copied from interface:ParametersCopies all of the mappings from the specifiedparametersto this instance replacing values of existing associations (optional operation).- Specified by:
putAllin interfaceParameters- Parameters:
parameters- to copy.- Returns:
- this instance of
Parameters
-
add
Description copied from interface:ParametersAdds specified values to association with the specified key (optional operation). If parameters doesn't contains mapping, new mapping is created.- Specified by:
addin 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
Description copied from interface:ParametersAdds specified values to association with the specified key (optional operation). If parameters doesn't contains mapping, new mapping is created.- Specified by:
addin interfaceParameters- Parameters:
key- key with which the specified value is to be associatedvalues- value to be add to association with the specified key. Ifnullthen noting will be add.- Returns:
- this instance of
Parameters
-
addAll
Description copied from interface:ParametersCopies all of the mappings from the specifiedparametersto this instance adding values to existing associations (optional operation).- Specified by:
addAllin interfaceParameters- Parameters:
parameters- to copy.- Returns:
- this instance of
Parameters
-
remove
Description copied from interface:ParametersRemoves the mapping for a key if it is present (optional operation).- Specified by:
removein interfaceParameters- Parameters:
key- key whose mapping is to be removed.- Returns:
- the previous value associated with key, or empty
List.
-
toMap
Description copied from interface:ParametersReturns 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:
toMapin interfaceParameters- Returns:
- the
Map
-
toString
-
equals
-
hashCode
public int hashCode()
-