Skip to content

Commit

Permalink
Изменение интерфейса Condition
Browse files Browse the repository at this point in the history
  • Loading branch information
Bloogefest committed Jan 15, 2025
1 parent 00ee01f commit d8e5b7d
Showing 1 changed file with 36 additions and 43 deletions.
79 changes: 36 additions & 43 deletions function/src/main/java/com/sogeor/framework/function/Condition.java
Original file line number Diff line number Diff line change
Expand Up @@ -89,136 +89,129 @@ public interface Condition<F extends Throwable> {
}

/**
* Если {@code this == condition}, то возвращает {@code this}, в противном случае создаёт условие (1) с методом
* {@linkplain #compute()}, получающим от методов {@linkplain #compute() this.compute()} и
* {@linkplain #compute() condition.compute()} результаты (2) вычислений и возвращающим конъюнкцию (2).
* Создаёт условие (1) с методом {@linkplain #compute()}, получающим от методов
* {@linkplain #compute() this.compute()} и {@linkplain #compute() condition.compute()} результаты (2) вычислений и
* возвращающим конъюнкцию (2).
*
* @param condition условие.
*
* @return {@code this} или [1].
* @return [1].
*
* @throws NullValidationFault {@code condition} не должно быть {@code null}.
* @since 1.0.0-RC1
*/
@Contract("this -> this; !null -> new; null -> fault")
@Contract("!null -> new; null -> fault")
default @NonNull Condition<F> and(final @NonNull Condition<? extends F> condition) throws NullValidationFault {
Validator.nonNull(condition, "The passed condition");
return this == condition ? this : () -> compute() && condition.compute();
return () -> compute() && condition.compute();
}

/**
* Если {@code this == condition}, то создаёт условие (1) с методом {@linkplain #compute()}, получающим от метода
* {@linkplain #compute() this.compute()} результат (2) вычисления и возвращающим инверсию [2], в противном случае
* создаёт условие (3) с методом {@linkplain #compute()}, получающим от методов
* {@linkplain #compute() this.compute()} и {@linkplain #compute() condition.compute()} результаты (4) вычислений и
* возвращающим штрих Шеффера [4].
* Создаёт условие (1) с методом {@linkplain #compute()}, получающим от методов
* {@linkplain #compute() this.compute()} и {@linkplain #compute() condition.compute()} результаты (2) вычислений и
* возвращающим штрих Шеффера [2].
*
* @param condition условие.
*
* @return [1] или [3].
* @return [1].
*
* @throws NullValidationFault {@code condition} не должно быть {@code null}.
* @since 1.0.0-RC1
*/
@Contract("!null -> new; null -> fault")
default @NonNull Condition<F> nand(final @NonNull Condition<? extends F> condition) throws NullValidationFault {
Validator.nonNull(condition, "The passed condition");
return this == condition ? () -> !compute() : () -> !(compute() && condition.compute());
return () -> !(compute() && condition.compute());
}

/**
* Если {@code this == condition}, то возвращает {@code this}, в противном случае создаёт условие (1) с методом
* {@linkplain #compute()}, получающим от методов {@linkplain #compute() this.compute()} и
* {@linkplain #compute() condition.compute()} результаты (2) вычислений и возвращающим мягкую дизъюнкцию [2].
* Создаёт условие (1) с методом {@linkplain #compute()}, получающим от методов
* {@linkplain #compute() this.compute()} и {@linkplain #compute() condition.compute()} результаты (2) вычислений и
* возвращающим мягкую дизъюнкцию [2].
*
* @param condition условие.
*
* @return {@code this} или [1].
* @return [1].
*
* @throws NullValidationFault {@code condition} не должно быть {@code null}.
* @since 1.0.0-RC1
*/
@Contract("this -> this; !null -> new; null -> fault")
default @NonNull Condition<F> or(final @NonNull Condition<? extends F> condition) throws NullValidationFault {
Validator.nonNull(condition, "The passed condition");
return this == condition ? this : () -> compute() || condition.compute();
return () -> compute() || condition.compute();
}

/**
* Если {@code this == condition}, то создаёт условие (1) с методом {@linkplain #compute()}, получающим от метода
* {@linkplain #compute() this.compute()} результат (2) вычисления и возвращающим инверсию [2], в противном случае
* создаёт условие (3) с методом {@linkplain #compute()}, получающим от методов
* {@linkplain #compute() this.compute()} и {@linkplain #compute() condition.compute()} результаты (4) вычислений и
* возвращающим стрелку Пирса [4].
* Создаёт условие (1) с методом {@linkplain #compute()}, получающим от методов
* {@linkplain #compute() this.compute()} и {@linkplain #compute() condition.compute()} результаты (2) вычислений и
* возвращающим стрелку Пирса [2].
*
* @param condition условие.
*
* @return [1] или [3].
* @return [1].
*
* @throws NullValidationFault {@code condition} не должно быть {@code null}.
* @since 1.0.0-RC1
*/
@Contract("!null -> new; null -> fault")
default @NonNull Condition<F> nor(final @NonNull Condition<? extends F> condition) throws NullValidationFault {
Validator.nonNull(condition, "The passed condition");
return this == condition ? () -> !compute() : () -> !(compute() || condition.compute());
return () -> !(compute() || condition.compute());
}

/**
* Если {@code this == condition}, то создаёт условие (1) с методом {@linkplain #compute()}, возвращающим
* {@code true}, в противном случае создаёт условие (2) с методом {@linkplain #compute()}, получающим от методов
* {@linkplain #compute() this.compute()} и {@linkplain #compute() condition.compute()} результаты (3) вычислений и
* возвращающим эквивалентность [3].
* Создаёт условие (1) с методом {@linkplain #compute()}, получающим от методов
* {@linkplain #compute() this.compute()} и {@linkplain #compute() condition.compute()} результаты (2) вычислений и
* возвращающим эквивалентность [2].
*
* @param condition условие.
*
* @return [1] или [2].
* @return [1].
*
* @throws NullValidationFault {@code condition} не должно быть {@code null}.
* @since 1.0.0-RC1
*/
@Contract("!null -> new; null -> fault")
default @NonNull Condition<F> xnor(final @NonNull Condition<? extends F> condition) throws NullValidationFault {
Validator.nonNull(condition, "The passed condition");
return this == condition ? () -> true : () -> compute() == condition.compute();
return () -> compute() == condition.compute();
}

/**
* Если {@code this == condition}, то создаёт условие (1) с методом {@linkplain #compute()}, возвращающим
* {@code false}, в противном случае создаёт условие (2) с методом {@linkplain #compute()}, получающим от методов
* {@linkplain #compute() this.compute()} и {@linkplain #compute() condition.compute()} результаты (3) вычислений и
* возвращающим строгую дизъюнкцию [3].
* Создаёт условие (1) с методом {@linkplain #compute()}, получающим от методов
* {@linkplain #compute() this.compute()} и {@linkplain #compute() condition.compute()} результаты (2) вычислений и
* возвращающим строгую дизъюнкцию [2].
*
* @param condition условие.
*
* @return [1] или [2].
* @return [1].
*
* @throws NullValidationFault {@code condition} не должно быть {@code null}.
* @since 1.0.0-RC1
*/
@Contract("!null -> new; null -> fault")
default @NonNull Condition<F> xor(final @NonNull Condition<? extends F> condition) throws NullValidationFault {
Validator.nonNull(condition, "The passed condition");
return this == condition ? () -> false : () -> compute() ^ condition.compute();
return () -> compute() ^ condition.compute();
}

/**
* Если {@code this == condition}, то создаёт условие (1) с методом {@linkplain #compute()}, возвращающим
* {@code true}, в противном случае создаёт условие (2) с методом {@linkplain #compute()}, получающим от методов
* {@linkplain #compute() this.compute()} и {@linkplain #compute() condition.compute()} результаты (3) вычислений и
* возвращающим импликацию [3].
* Создаёт условие (1) с методом {@linkplain #compute()}, получающим от методов
* {@linkplain #compute() this.compute()} и {@linkplain #compute() condition.compute()} результаты (2) вычислений и
* возвращающим импликацию [2].
*
* @param condition условие.
*
* @return [1] или [2].
* @return [1].
*
* @throws NullValidationFault {@code condition} не должно быть {@code null}.
* @since 1.0.0-RC1
*/
@Contract("!null -> new; null -> fault")
default @NonNull Condition<F> imply(final @NonNull Condition<? extends F> condition) throws NullValidationFault {
Validator.nonNull(condition, "The passed condition");
return this == condition ? () -> true : () -> !compute() || condition.compute();
return () -> !compute() || condition.compute();
}

}

0 comments on commit d8e5b7d

Please sign in to comment.