Interface QuadPredicate<A,​B,​C,​D>

  • 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 QuadPredicate<A,​B,​C,​D>
    QuadPredicate Documentation.

    This is an extension of Java's original functional-interfaces package. The Functional Interface designed here creates a "Quad Predicate" - a straight-forward extension of interface java.util.function.Predicate - but instead has a 'test(...)' method receiving four 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 four, 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,
                     D d)
        Evaluates "this" predicate on the given arguments.
        Parameters:
        a - the first input argument
        b - the second input argument
        c - the third input argument
        d - the fourth input argument
        Returns:
        TRUE if the input arguments match the predicate, otherwise FALSE
      • and

        default QuadPredicate<A,​B,​C,​Dand​
                    (QuadPredicate<? super A,​? super B,​? super C,​? super D> 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
        5
         if (other == null)
             throw new NullPointerException("null has been passed to parameter 'other");
        
         return (A a, B b, C c, D d) ->
             this.test(a, b, c, d) && other.test(a, b, c, d);
        
      • negate

        default QuadPredicate<A,​B,​C,​Dnegate()
        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, D d) -> ! this.test(a, b, c, d);
        
      • or

        default QuadPredicate<A,​B,​C,​Dor​
                    (QuadPredicate<? super A,​? super B,​? super C,​? super D> 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
        5
         if (other == null)
             throw new NullPointerException("null has been passed to parameter 'other");
        
         return (A a, B b, C c, D d) ->
             this.test(a, b, c, d) || other.test(a, b, c, d);