Class MultiValuesConverterFactory

java.lang.Object
io.micronaut.core.convert.converters.MultiValuesConverterFactory

public class MultiValuesConverterFactory extends Object
A factory for creation of various FormattingTypeConverters to and from ConvertibleMultiValues type. The other types are either Iterable or Map or POJO Object. The converters only work when an ArgumentConversionContext is provided (so the type is an argument), as the name of the parameter needs to be retrieved from there. Also Format annotation is required and needs to have one of the below mentioned formats: "csv", "ssv", "pipes", "multi", "deep-object". The format can be written in any case, e.g. "DEEP_OBJECT", "deep-object".
Since:
3.0.0
Author:
Andriy Dmytruk
  • Field Details

    • FORMAT_CSV

      public static final String FORMAT_CSV
      Values separated with commas ",". In case of iterables, the values are converted to String and joined with comma delimiter. In case of Map or a POJO Object the keys and values are alternating and all delimited with commas.
      Examples
      Type Example value Example representation
      Iterable   param=["Mike", "Adam", "Kate"] "param=Mike,Adam,Kate"
      Map param=["name": "Mike", "age": "30"]   "param=name,Mike,age,30"
      Object param={name: "Mike", age: 30} "param=name,Mike,age,30"
      Note that ambiguity may arise when the values contain commas themselves after being converted to String.
      See Also:
    • FORMAT_SSV

      public static final String FORMAT_SSV
      Values separated with spaces " " similarly to CSV being separated with commas.
      See Also:
    • FORMAT_PIPES

      public static final String FORMAT_PIPES
      Values separated with the pipe "|" symbol similarly to CSV being separated with commas.
      See Also:
    • FORMAT_MULTI

      public static final String FORMAT_MULTI
      Values are repeated with the same parameter name for Iterable, while Map and POJO Object would be expanded with its property names.
      Examples
      Type Example value Example representation
      Iterable   param=["Mike", "Adam", "Kate"] "param=Mike&param=Adam&param=Kate
      Map param=["name": "Mike", "age": "30"]   "name=Mike&age=30"
      Object param={name: "Mike", age: 30} "name=Mike&age=30"
      See Also:
    • FORMAT_DEEP_OBJECT

      public static final String FORMAT_DEEP_OBJECT
      Values are put in the representation with property name for Map and POJO Object in square after the original parameter name.
      Examples
      Type Example value Example representation
      Iterable   param=["Mike", "Adam", "Kate"] "param[0]=Mike&param[1]=Adam&param[2]=Kate
      Map param=["name": "Mike", "age": "30"]   "param[name]=Mike&param[age]=30"
      Object param={name: "Mike", age: 30} "param[name]=Mike&param[age]=30"
      See Also:
  • Constructor Details

    • MultiValuesConverterFactory

      public MultiValuesConverterFactory()