Simplify and extend AlmostBoolean.

This commit is contained in:
asofold 2014-06-04 22:04:17 +02:00
parent 1ada725476
commit d6e66dc22d

View File

@ -1,21 +1,38 @@
package fr.neatmonster.nocheatplus.compat; package fr.neatmonster.nocheatplus.compat;
/**
* Some tri-state with booleans in mind.
* @author mc_dev
*
*/
public enum AlmostBoolean{ public enum AlmostBoolean{
YES(true), YES,
NO(false), NO,
MAYBE(false); MAYBE;
/**
* "Match" a boolean.
* @param value
* @return
*/
public static final AlmostBoolean match(final boolean value) { public static final AlmostBoolean match(final boolean value) {
return value ? YES : NO; return value ? YES : NO;
} }
private final boolean decision;
private AlmostBoolean(final boolean decision){
this.decision = decision;
}
/**
* Pessimistic interpretation: true iff YES.
* @return
*/
public boolean decide(){ public boolean decide(){
return decision; return this == YES;
} }
/**
* Optimistic interpretation: true iff not NO.
* @return
*/
public boolean decideOptimistically() {
return this != NO;
}
} }