Interface TriPredicate<A,​B,​C>

  • Functional Interface:
    This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

    @FunctionalInterface
    public interface TriPredicate<A,​B,​C>
    TriPredicate Documentation.

    This is an extension of Java's original functional-interfaces package. The Functional Interface designed here creates a "Tri Predicate" - a straight-forward extension of interface java.util.function.Predicate - but instead has a 'test(...)' method receiving three variable-type parameters instead of just one.

    NOTE: Java's Basic Package java.util.function.*, contains an interface named BiPredicate, that extends the basic Predicate<T> to interface BiPredicate<T, U>. The interface that is implemented here follows a similar vein, but extends the number of generic type-parameters to three, instead of two.

    Obviously, for all Predicate's in Java, the test(..) shall return a boolean.



    • Method Detail

      • test

        boolean test​(A a,
                     B b,
                     C c)
        Evaluates "this" predicate on the given arguments.
        Parameters:
        a - the first input argument
        b - the second input argument
        c - the third input argument
        Returns:
        TRUE if the input arguments match the predicate, otherwise FALSE
      • and

        default TriPredicate<A,​B,​Cand​
                    (TriPredicate<? super A,​? super B,​? super C> other)
        
        Returns a composed predicate that represents a short-circuiting logical AND of this predicate and another. When evaluating the composed predicate, if this predicate is FALSE, then the other predicate is not evaluated.

        Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the other predicate will not be evaluated.
        Parameters:
        other - A predicate that will be logically-AND'ed with this predicate
        Returns:
        A composed predicate that represents the short-circuiting logical AND of this predicate and the other predicate
        Throws:
        java.lang.NullPointerException - if parameter 'other' is null.
        Code:
        Exact Method Body:
        1
        2
        3
        4
         if (other == null)
             throw new NullPointerException("null has been passed to parameter 'other");
        
         return (A a, B b, C c) -> this.test(a, b, c) && other.test(a, b, c);
        
      • negate

        default TriPredicate<A,​B,​Cnegate()
        Returns a predicate that represents the logical negation of this predicate.
        Returns:
        A predicate that represents the logical negation of this predicate
        Code:
        Exact Method Body:
        1
         return (A a, B b, C c) -> ! this.test(a, b, c);
        
      • or

        default TriPredicate<A,​B,​Cor​
                    (TriPredicate<? super A,​? super B,​? super C> other)
        
        Returns a composed predicate that represents a short-circuiting logical OR of this predicate and another. When evaluating the composed predicate, if this predicate is TRUE, then the other predicate is not evaluated.

        Any exceptions thrown during evaluation of either predicate are relayed to the caller; if evaluation of this predicate throws an exception, the other predicate will not be evaluated.
        Parameters:
        other - a predicate that will be logically-ORed with this predicate
        Returns:
        a composed predicate that represents the short-circuiting logical OR of this predicate and the other predicate
        Throws:
        java.lang.NullPointerException - if parameter 'other' is null.
        Code:
        Exact Method Body:
        1
        2
        3
        4
         if (other == null)
             throw new NullPointerException("null has been passed to parameter 'other");
        
         return (A a, B b, C c) -> this.test(a, b, c) || other.test(a, b, c);