1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | package Torello.Java.Function; /** * Function-Pointer * <SPAN CLASS=TJF>Input:</SPAN> {@code char} * <SPAN CLASS=TJF>Output:</SPAN> {@code boolean}. * * <BR /><BR /> * This is similar to Java's {@code IntPredicate}, except it explicity requires a {@code char} * type in it's lambda {@code 'test'} method. */ @FunctionalInterface public interface CharPredicate { /** * Evaluates this predicate on the given argument. * <BR /><BR /><EMBED CLASS='external-html' DATA-FILE-ID=FUNC_INTER_METH> * * @param c primitive-{@code char} (character) input argument. * @return {@code TRUE} if the input argument matches this predicate, and <B>FALSE</B> * otherwise. */ public boolean test(char c); /** * <EMBED CLASS='external-html' DATA-FILE-ID=PRED_AND_METHOD> * @param other A predicate that will be logically-AND'ed with this predicate * @return <EMBED CLASS='external-html' DATA-FILE-ID=PRED_AND_RETURN> * @throws NullPointerException if parameter {@code 'other'} is null. */ default CharPredicate and(CharPredicate other) { if (other == null) throw new NullPointerException("null has been passed to parameter 'other'"); return (char c) -> this.test(c) && other.test(c); } /** * <EMBED CLASS='external-html' DATA-FILE-ID=PRED_NEGATE_METHOD> * @return <EMBED CLASS='external-html' DATA-FILE-ID=PRED_NEGATE_RETURN> */ default CharPredicate negate() { return (char c) -> ! this.test(c); } /** * <EMBED CLASS='external-html' DATA-FILE-ID=PRED_OR_METHOD> * @param other a predicate that will be logically-ORed with this predicate * @return <EMBED CLASS='external-html' DATA-FILE-ID=PRED_OR_RETURN> * @throws NullPointerException if parameter {@code 'other'} is null. */ default CharPredicate or(CharPredicate other) { if (other == null) throw new NullPointerException("null has been passed to parameter 'other'"); return (char c) -> this.test(c) || other.test(c); } } |