Class VavrValueArgumentFactory

  • All Implemented Interfaces:
    ArgumentFactory

    class VavrValueArgumentFactory
    extends java.lang.Object
    implements ArgumentFactory
    supports several vavr value classes (Option, Lazy, Either, Try and Validation) with the underlying "nested" value being resolved via "get"

    if there is no such value (Try-Failed, Either-Left...) a "null" value will be applied as argument value

    • Field Detail

      • VALUE_CLASSES

        private static final java.util.Set<java.lang.Class<?>> VALUE_CLASSES
    • Constructor Detail

      • VavrValueArgumentFactory

        VavrValueArgumentFactory()
    • Method Detail

      • build

        public java.util.Optional<Argument> build​(java.lang.reflect.Type type,
                                                  java.lang.Object value,
                                                  ConfigRegistry config)
        Description copied from interface: ArgumentFactory
        Returns an Argument for the given value if the factory supports it; empty otherwise.
        Specified by:
        build in interface ArgumentFactory
        Parameters:
        type - the known type of value. Depending on the situation this may be a full generic signature e.g. ParameterizedType, a Class, or Object.class if no type information is known.
        value - the value to convert into an Argument
        config - the config registry, for composition
        Returns:
        an argument for the given value if this factory supports it, or Optional.empty() otherwise.
        See Also:
        StatementContext.findArgumentFor(Type, Object), Arguments.findFor(Type, Object)
      • buildValueArgument

        private static java.util.Optional<Argument> buildValueArgument​(java.lang.reflect.Type type,
                                                                       ConfigRegistry config,
                                                                       io.vavr.Value<?> value)
      • extractTypeOfValue

        private static java.lang.reflect.Type extractTypeOfValue​(io.vavr.Value<?> value)