public static <T1, T2, T3> TriPredicate<T1, T2, T3> spy(TriPredicate<T1, T2, T3> predicate, Box<Boolean> result, Box<T1> param1, Box<T2> param2, Box<T3> param3) {
        return new TernaryCapturingPredicate<T1, T2, T3>(predicate, result, param1, param2, param3);
    }
public static < T1 , T2 , T3 > TriPredicate < T1 , T2 , T3 > spy ( TriPredicate < T1 , T2 , T3 > predicate , Box < Boolean > result , Box < T1 > param1 , Box < T2 > param2 , Box < T3 > param3 ) { return new TernaryCapturingPredicate < T1 , T2 , T3 > ( predicate , result , param1 , param2 , param3 ) ; }
Proxies a ternary predicate spying for result and parameters.

@param <T1> the predicate first parameter type
@param <T2> the predicate second parameter type
@param <T3> the predicate third parameter type
@param predicate the predicate to be spied
@param result a box that will be containing spied result
@param param1 a box that will be containing the first spied parameter
@param param2 a box that will be containing the second spied parameter
@param param3 a box that will be containing the third spied parameter
@return the proxied predicate