Class ReadOnlyParameters

java.lang.Object
io.helidon.common.http.ReadOnlyParameters
All Implemented Interfaces:
Parameters, Iterable<Map.Entry<String,List<String>>>
Direct Known Subclasses:
ReadOnlyHeaders

public class ReadOnlyParameters extends Object implements Parameters
An immutable implementation of Parameters.
See Also:
  • Constructor Details

    • ReadOnlyParameters

      public ReadOnlyParameters(Map<String,List<String>> data)
      Creates an instance from provided multi-map.
      Parameters:
      data - multi-map data to copy.
    • ReadOnlyParameters

      public ReadOnlyParameters(Parameters parameters)
      Creates an instance from provided multi-map.
      Parameters:
      parameters - parameters to copy.
    • ReadOnlyParameters

      protected ReadOnlyParameters(Iterable<Map.Entry<String,List<String>>> data)
  • Method Details

    • empty

      public static ReadOnlyParameters empty()
      Returns empty and immutable singleton.
      Returns:
      the parameters singleton instance which is empty and immutable.
    • first

      public Optional<String> first(String name)
      Description copied from interface: Parameters
      Returns an Optional 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 interface Parameters
      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 interface Parameters
      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 interface Parameters
      Parameters:
      key - key with which the specified value is to be associated
      values - 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 interface Parameters
      Parameters:
      key - key with which the specified value is to be associated
      values - value to be associated with the specified key. If null 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 empty List, else returns the current value (optional operation).
      Specified by:
      putIfAbsent in interface Parameters
      Parameters:
      key - key with which the specified value is to be associated
      values - 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 empty List, else returns the current value (optional operation).
      Specified by:
      putIfAbsent in interface Parameters
      Parameters:
      key - key with which the specified value is to be associated
      values - 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 empty List, else returns the current value (optional operation).
      Specified by:
      computeIfAbsent in interface Parameters
      Parameters:
      key - key with which the specified value is to be associated
      values - value to be associated with the specified key
      Returns:
      the current (potentially computed) values associated with key, or empty List if function returns null
    • putAll

      public ReadOnlyParameters putAll(Parameters parameters)
      Description copied from interface: Parameters
      Copies all of the mappings from the specified parameters to this instance replacing values of existing associations (optional operation).
      Specified by:
      putAll in interface Parameters
      Parameters:
      parameters - to copy.
      Returns:
      this instance of Parameters
    • add

      public ReadOnlyParameters add(String key, String... values)
      Description copied from interface: Parameters
      Adds specified values to association with the specified key (optional operation). If parameters doesn't contains mapping, new mapping is created.
      Specified by:
      add in interface Parameters
      Parameters:
      key - key with which the specified value is to be associated
      values - value to be add to association with the specified key
      Returns:
      this instance of Parameters
    • add

      public ReadOnlyParameters add(String key, Iterable<String> values)
      Description copied from interface: Parameters
      Adds specified values to association with the specified key (optional operation). If parameters doesn't contains mapping, new mapping is created.
      Specified by:
      add in interface Parameters
      Parameters:
      key - key with which the specified value is to be associated
      values - value to be add to association with the specified key. If null then noting will be add.
      Returns:
      this instance of Parameters
    • 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 empty List, else returns the current value (optional operation).
      Specified by:
      computeSingleIfAbsent in interface Parameters
      Parameters:
      key - a key with which the specified value is to be associated
      value - a single value to be associated with the specified key
      Returns:
      the current (potentially computed) values associated with key, or empty List if function returns null
    • addAll

      public ReadOnlyParameters addAll(Parameters parameters)
      Description copied from interface: Parameters
      Copies all of the mappings from the specified parameters to this instance adding values to existing associations (optional operation).
      Specified by:
      addAll in interface Parameters
      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 interface Parameters
      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 interface Parameters
      Returns:
      the Map
    • iterator

      public Iterator<Map.Entry<String,List<String>>> iterator()
      Description copied from interface: Parameters

      Implementations should override this default with a more efficient implementation.

      Specified by:
      iterator in interface Iterable<Map.Entry<String,List<String>>>
      Specified by:
      iterator in interface Parameters
      Returns:
      Iterator over the entries in the data
    • emptyMap

      protected Map<String,List<String>> emptyMap()
      Creates an empty Map suitable (once populated) for read-only access.
      Returns:
      empty Map
    • emptyMapForCopy

      protected Map<String,List<String>> emptyMapForCopy()
      Creates an empty Map suitable (once populated) for read-only access, pre-sized as specified.
      Returns:
      empty Map, possibly pre-sized as indicated