Functional-style if-then-else
Find a file
Paul Campbell dcf1847def Condition: remove use of 'if' internaly
By using a look-up map for true and false the only branch in the code
is removed.
2017-04-22 07:40:40 +01:00
src Condition: remove use of 'if' internaly 2017-04-22 07:40:40 +01:00
.gitignore Initial commit 2017-04-21 10:55:11 +01:00
.travis.yml .travis.yml: add TravisCI configuration 2017-04-21 14:42:45 +01:00
LICENSE.txt Initial commit 2017-04-21 10:55:11 +01:00
pom.xml pom.xml: version set to 0.2.0-SNAPSHOT 2017-04-21 14:46:18 +01:00
README.adoc README.adoc: fix typo 2017-04-21 14:30:55 +01:00

# Conditional

If-then-else in a functional-style.

## Usage

### 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());
----