public static <R, T1, T2, T3, I extends TernaryInterceptor<T1, T2, T3>> TriFunction<T1, T2, T3, R> intercept(TriFunction<T1, T2, T3, R> innermost, Iterator<I> interceptors) {
        return new TernaryInterceptorChain<T1, T2, T3, R>(innermost, interceptors);
    }
public static < R , T1 , T2 , T3 , I extends TernaryInterceptor < T1 , T2 , T3 > > TriFunction < T1 , T2 , T3 , R > intercept ( TriFunction < T1 , T2 , T3 , R > innermost , Iterator < I > interceptors ) { return new TernaryInterceptorChain < T1 , T2 , T3 , R > ( innermost , interceptors ) ; }
Creates a ternary interceptor chain.

@param <R> the function result type
@param <T1> the function first parameter type
@param <T2> the function second parameter type
@param <T3> the function third parameter type
@param <I> the ternary interceptor type
@param innermost the function to be intercepted
@param interceptors an iterator of interceptors
@return the resulting function