Class Function.ArgDrivenFunction<SOURCE,​RETTYPE>

  • Type Parameters:
    SOURCE - type of special argument
    RETTYPE - type of return value
    All Implemented Interfaces:
    Function
    Direct Known Subclasses:
    Function.ArgDrivenListFunction, Function.ArgDrivenSingleFunction
    Enclosing interface:
    Function

    public abstract static class Function.ArgDrivenFunction<SOURCE,​RETTYPE>
    extends java.lang.Object
    implements Function
    Abstract class that provides rudimentary abstraction to quickly implement a function that classifies first arg as special input and rest as regular input.
    • Field Detail

      • specialArgType

        private final java.lang.Class<SOURCE> specialArgType
    • Constructor Detail

      • ArgDrivenFunction

        private ArgDrivenFunction()
    • Method Detail

      • getSpecialArg

        private Optional<SOURCE> getSpecialArg​(java.lang.Object[] args)
      • apply

        public final Optional<java.lang.Object> apply​(java.lang.Object... args)
        Specified by:
        apply in interface Function
      • applyList

        protected abstract Optional<java.lang.Object> applyList​(SOURCE specialArg,
                                                                java.util.List<java.lang.Object> args)
      • applySingle

        protected abstract Optional<RETTYPE> applySingle​(SOURCE specialArg,
                                                         java.lang.Object arg)