September Morn Update

This commit is contained in:
Ingy döt Net 2019-09-12 10:33:56 -07:00
parent 4e2d22a71d
commit aac6731f2c
6856 changed files with 141342 additions and 21127 deletions

View file

@ -0,0 +1,13 @@
public class If2 {
public static void if2(boolean firstCondition, boolean secondCondition,
Runnable bothTrue, Runnable firstTrue, Runnable secondTrue, Runnable noneTrue) {
if (firstCondition)
if (secondCondition)
bothTrue.run();
else firstTrue.run();
else if (secondCondition)
secondTrue.run();
else noneTrue.run();
}
}

View file

@ -0,0 +1,15 @@
import static If2.if2;
class Main {
private static void print(String s) {
System.out.println(s);
}
public static void main(String[] args) {
// prints "both true"
if2(true, true,
() -> print("both true"),
() -> print("first true"),
() -> print("second true"),
() -> print("none true"));
}
}

View file

@ -0,0 +1,41 @@
public class If2 {
private final boolean firstCondition;
private final boolean secondCondition;
public If2(boolean firstCondition, boolean secondCondition) {
this.firstCondition = firstCondition;
this.secondCondition = secondCondition;
}
public static If2 if2(boolean firstCondition, boolean secondCondition) {
return new If2(firstCondition, secondCondition);
}
public If2 then(Runnable runnable) {
if (firstCondition && secondCondition) {
runnable.run();
}
return this;
}
public If2 elseNone(Runnable runnable) {
if (!firstCondition && !secondCondition) {
runnable.run();
}
return this;
}
public If2 elseIfFirst(Runnable runnable) {
if (firstCondition && !secondCondition) {
runnable.run();
}
return this;
}
public If2 elseIfSecond(Runnable runnable) {
if (!firstCondition && secondCondition) {
runnable.run();
}
return this;
}
}

View file

@ -0,0 +1,14 @@
// prints "both true"
if2(true, true)
.then(() -> print("both true"))
.elseIfFirst(() -> print("first true"))
.elseIfSecond(() -> print("second true"))
.elseNone(() -> print("none true"));
// if we only care about both true and none true...
// prints "none true"
if2(false, false)
.then(() -> print("both true"))
.elseNone(() -> { // a lambda can have a block body
print("none true");
});