All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ru.yandex.bolts.function.Function3V Maven / Gradle / Ivy

The newest version!
package ru.yandex.bolts.function;

// this file is generated by ru.yandex.bolts.function.gen.GenerateFunctions

import ru.yandex.bolts.collection.Tuple3;


@FunctionalInterface
public interface Function3V {

    void apply(A a, B b, C c);

    default Function2V bind1(final A a) {
        return (b, c) -> apply(a, b, c);
    }

    default Function2V bind2(final B b) {
        return (a, c) -> apply(a, b, c);
    }

    default Function2V bind3(final C c) {
        return (a, b) -> apply(a, b, c);
    }


    static  Function2, A, Function2V> bind1F2() {
        return Function3V::bind1;
    }

    default Function> bind1F() {
        return Function3V.bind1F2().bind1(this);
    }

    static  Function2, B, Function2V> bind2F2() {
        return Function3V::bind2;
    }

    default Function> bind2F() {
        return Function3V.bind2F2().bind1(this);
    }

    static  Function2, C, Function2V> bind3F2() {
        return Function3V::bind3;
    }

    default Function> bind3F() {
        return Function3V.bind3F2().bind1(this);
    }

    default Function, Object> asFunction() {
        return t -> {
            apply(t._1, t._2, t._3);
            return null;
        };
    }

    default Function1V> asFunction1V() {
        return t -> apply(t._1, t._2, t._3);
    }

    default Function3 asFunction3() {
        return (a, b, c) -> {
            apply(a, b, c);
            return null;
        };
    }

    @SuppressWarnings("unchecked")
    default  Function3V uncheckedCast() {
        return (Function3V) this;
    }

} //~




© 2015 - 2024 Weber Informatics LLC | Privacy Policy