Functional-style if-then-else
Paul Campbell
80e813e933
Deprecate the whereNot(), andNot() and orNot() methods infavour of these new methods, which they all not use internally.. |
||
---|---|---|
.travis-support@b8593e541b | ||
src | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
CHANGELOG | ||
codesigning.asc.enc | ||
Jenkinsfile.groovy | ||
LICENSE.txt | ||
lombok.config | ||
pom.xml | ||
README.adoc |
# Conditional image:https://img.shields.io/github/release/kemitix/conditional.svg["Releases", link="https://github.com/kemitix/conditional/releases"] image:https://api.codacy.com/project/badge/Grade/1188742d676e457da91415d2b3a5faf1["Codacy code quality", link="https://www.codacy.com/app/kemitix/conditional"] image:https://travis-ci.org/kemitix/conditional.svg?branch=master["Build Status", link="https://travis-ci.org/kemitix/conditional"] image:https://coveralls.io/repos/github/kemitix/conditional/badge.svg?branch=master["Coverage Status", link="https://coveralls.io/github/kemitix/conditional?branch=master"] * link:#condition[Condition] * link:#value[Value] ## Condition If-then-else in a functional-style. ### if-then [[source,java]] ---- if (isTrue()) { doSomething(); } ---- [[source,java]] ---- Condition.where(isTrue()) .then(() -> doSomething()); ---- ### if-then-else [[source,java]] ---- if (isTrue()) { doSomething(); } else { doSomethingElse(); } ---- [[source,java]] ---- Condition.where(isTrue()) .then(() -> doSomething()) .otherwise(() -> doSomethingElse()); ---- ### if-and-then-else [[source,java]] ---- if (isTrue() && isAlsoTrue()) { doSomething(); } else { doSomethingElse(); } ---- [[source,java]] ---- Condition.where(isTrue()) .and(() -> isAlsoTrue()) .then(() -> doSomething()) .otherwise(() -> doSomethingElse()); ---- ### if-or-then-else [[source,java]] ---- if (isTrue() || alternativeIsTrue()) { doSomething(); } else { doSomethingElse(); } ---- [[source,java]] ---- Condition.where(isTrue()) .or(() -> alternativeIsTrue()) .then(() -> doSomething()) .otherwise(() -> doSomethingElse()); ---- ### if-not-then-else [[source,java]] ---- if (!isFalse()) { doSomething(); } else { doSomethingElse(); } ---- [[source,java]] ---- Condition.whereNot(isFalse()) .then(() -> doSomething()) .otherwise(() -> doSomethingElse()); ---- ### if-and-not-then-else [[source,java]] ---- if (isTrue() || !isFalse()) { doSomething(); } else { doSomethingElse(); } ---- [[source,java]] ---- Condition.where(isTrue()) .andNot(() -> isFalse()) .then(() -> doSomething()) .otherwise(() -> doSomethingElse()); ---- ### if-or-not-then-else [[source,java]] ---- if (isFalse() || !isAlsoFalse()) { doSomething(); } else { doSomethingElse(); } ---- [[source,java]] ---- Condition.where(isFalse()) .orNot(() -> isAlsoFalse()) .then(() -> doSomething()) .otherwise(() -> doSomethingElse()); ---- ### if-then-else-if [[source,java]] ---- if (isFalse()) { doSomething(); } else if (isTrue()) { doSomethingElse(); } ---- [[source,java]] ---- Condition.where(isFalse()) .then(() -> doSomething()) .otherwise(() -> isTrue()) .then(() -> doSomethingElse()); ---- ### if-then-if-then [[source,java]] ---- if (isTrue()) { doSomething(); if (isAlsoTrue()) { doSomethingElse(); } } ---- [[source,java]] ---- Condition.where(isTrue()) .then(() -> doSomething()) .and(() -> isAlsoTrue()) .then(() -> doSomethingElse()); ---- ## Value Values from an if-then-else in a functional-style. Functional, and verbose, alternative to the ternary operator (`?:`). ### if-then-else [[source,java]] ---- String result; if (isTrue()) { result = TRUE; } else { result = FALSE; } ---- [[source,java]] ---- String result = isTrue() ? TRUE : FALSE; ---- [[source,java]] ---- final String result = Value.where(isTrue(), () -> TRUE, () -> FALSE); ---- [[source,java]] ---- final Optional<String> result = Value.where(isTrue(), () -> TRUE); ---- [[source,java]] ---- final String result = Value.<String>where(isTrue()) .then(() -> TRUE) .otherwise(() -> FALSE); ---- ### if-not-then-else [[source,java]] ---- String result; if (!isTrue()) { result = TRUE; } else { result = FALSE; } ---- [[source,java]] ---- final String result = Value.<String>whereNot(isTrue()) .then(() -> TRUE) .otherwise(() -> FALSE); ---- ### if-and-then-else [[source,java]] ---- String result; if (isTrue() && alternativeIsTrue()) { result = TRUE; } else { result = FALSE; } ---- [[source,java]] ---- final String result = Value.<String>where(isTrue()) .and(() -> alternativeIsTrue()) .then(() -> TRUE) .otherwise(() -> FALSE); ---- ### if-and-not-then-else [[source,java]] ---- String result; if (isTrue() && !alternativeIsFalse()) { result = TRUE; } else { result = FALSE; } ---- [[source,java]] ---- final String result = Value.<String>where(isTrue()) .andNot(() -> alternativeIsFalse()) .then(() -> TRUE) .otherwise(() -> FALSE); ---- ### if-or-then-else [[source,java]] ---- String result; if (isTrue() || alternativeIsTrue()) { result = TRUE; } else { result = FALSE; } ---- [[source,java]] ---- final String result = Value.<String>where(isTrue()) .or(() -> alternativeIsTrue()) .then(() -> TRUE) .otherwise(() -> FALSE); ---- ### if-or-not-then-else [[source,java]] ---- String result; if (isTrue() || !isFalse()) { result = TRUE; } else { result = FALSE; } ---- [[source,java]] ---- final String result = Value.<String>where(isTrue()) .orNot(() -> isFalse()) .then(() -> TRUE) .otherwise(() -> FALSE); ---- ### if-then [[source,java]] ----- Optional<String> result; if (isTrue()) { result = Optional.of(TRUE); } else { result = Optional.empty(); } ----- [[source,java]] ----- final Optional<String> result = Value.<String>where(isTrue()) .then(() -> TRUE) .optional(); -----