Interface HexPredicate<A,​B,​C,​D,​E,​F>

  • Type Parameters:
    A - The type of the first input-parameter.
    B - The type of the second input-parameter.
    C - The type of the third input-parameter.
    D - The type of the fourth input-parameter.
    E - The type of the fifth input-parameter.
    F - The type of the last input-parameter.
    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 HexPredicate<A,​B,​C,​D,​E,​F>
    Function-Pointer Input: A, B, C, D, E, F Output: boolean.

    This is an extension of Java's original functional-interfaces package. The Functional Interface designed here creates a "Hex Predicate" - a straight-forward extension of interface java.util.function.Predicate - but instead has a 'test(...)' method receiving six 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 six, instead of two.

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


    • Method Summary

       
      @FunctionalInterface: (Lambda) Method
      Modifier and Type Method
      boolean test​(A a, B b, C c, D d, E e, F f)
       
      Default Composition & Builder Method(s)
      Modifier and Type Method
      default HexPredicate<A,
           ​B,
           ​C,
           ​D,
           ​E,
           ​F>
      and​(HexPredicate<? super A,​? super B,​? super C,​? super D,​? super E,​? super F> other)
      default HexPredicate<A,
           ​B,
           ​C,
           ​D,
           ​E,
           ​F>
      negate()
      default HexPredicate<A,
           ​B,
           ​C,
           ​D,
           ​E,
           ​F>
      or​(HexPredicate<? super A,​? super B,​? super C,​? super D,​? super E,​? super F> other)
    • Method Detail

      • test

        🡇     🗕  🗗  🗖
        boolean test​(A a,
                     B b,
                     C c,
                     D d,
                     E e,
                     F f)
        Evaluates "this" predicate on the given arguments.

        FunctionalInterface Target-Method:
        This method corresponds to the @FunctionalInterface Annotation's method requirement. It is the only non-default, non-static method in this interface, and may be the target of a Lambda-Expression or '::' (double-colon) Function-Pointer.
        Parameters:
        a - the first input argument
        b - the second input argument
        c - the third input argument
        d - the fourth input argument
        e - the fifth input argument
        f - the sixth input argument
        Returns:
        TRUE if the input arguments match the predicate, otherwise FALSE
      • and

        🡅  🡇     🗕  🗗  🗖
        default HexPredicate<A,​B,​C,​D,​E,​Fand​
                    (HexPredicate<? super A,​? super B,​? super C,​? super D,​? super E,​? super F> 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:
         if (other == null)
             throw new NullPointerException("null has been passed to parameter 'other");
        
         return (A a, B b, C c, D d, E e, F f) -> 
             this.test(a, b, c, d, e, f) && other.test(a, b, c, d, e, f);
        
      • negate

        🡅  🡇     🗕  🗗  🗖
        default HexPredicate<A,​B,​C,​D,​E,​Fnegate()
        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:
         return (A a, B b, C c, D d, E e, F f) -> ! this.test(a, b, c, d, e, f);
        
      • or

        🡅     🗕  🗗  🗖
        default HexPredicate<A,​B,​C,​D,​E,​For​
                    (HexPredicate<? super A,​? super B,​? super C,​? super D,​? super E,​? super F> 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:
         if (other == null)
             throw new NullPointerException("null has been passed to parameter 'other");
        
         return (A a, B b, C c, D d, E e, F f) ->
             this.test(a, b, c, d, e, f) || other.test(a, b, c, d, e, f);