conditional/README.adoc

313 lines
5.7 KiB
Text
Raw Normal View History

2017-04-21 12:17:18 +01:00
# Conditional
2017-08-26 12:51:37 +01:00
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]
2017-04-21 12:17:18 +01:00
## Condition
If-then-else in a functional-style.
2017-04-21 12:17:18 +01:00
### 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())
2017-04-21 14:30:55 +01:00
.otherwise(isTrue())
.then(() -> doSomethingElse());
----
2017-04-21 12:17:18 +01:00
### 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);
----