From 67b0566a06a1a669e5ba460ba1a4fc9209f941da Mon Sep 17 00:00:00 2001 From: George Date: Wed, 11 Dec 2024 14:05:39 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=B2=D0=B5=D0=B4=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B0=20`Predicate::xno?= =?UTF-8?q?r(Predicate)`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sogeor/framework/function/Predicate.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/function/src/main/java/com/sogeor/framework/function/Predicate.java b/function/src/main/java/com/sogeor/framework/function/Predicate.java index 9dcee8f..1f45632 100644 --- a/function/src/main/java/com/sogeor/framework/function/Predicate.java +++ b/function/src/main/java/com/sogeor/framework/function/Predicate.java @@ -152,6 +152,25 @@ public interface Predicate { return object -> !(evaluate(object) || predicate.evaluate(object)); } + /** + * Создаёт предикат (2) объектов с методом {@linkplain #evaluate(Object)}, получающим от методов + * {@linkplain #evaluate(Object) this.evaluate(Object)} и {@linkplain #evaluate(Object) predicate.evaluate(Object)} + * оценки и возвращающим их эквивалентность. + * + * @param predicate предикат (1) объектов. + * + * @return [2]. + * + * @throws ValidationFault неудачная валидация [1]. + * @since 1.0.0-RC1 + */ + @Contract("!null -> new; null -> fault") + default @NonNull Predicate xnor(final @NonNull Predicate predicate) throws + ValidationFault { + Validator.nonNull(predicate, "The passed predicate"); + return object -> evaluate(object) == predicate.evaluate(object); + } + /** * Создаёт предикат (2) объектов с методом {@linkplain #evaluate(Object)}, получающим от методов * {@linkplain #evaluate(Object) this.evaluate(Object)} и {@linkplain #evaluate(Object) predicate.evaluate(Object)}