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;
/**
* Some tri-state with booleans in mind.
* @author mc_dev
*
*/
public enum AlmostBoolean{
YES(true),
NO(false),
MAYBE(false);
YES,
NO,
MAYBE;
/**
* "Match" a boolean.
* @param value
* @return
*/
public static final AlmostBoolean match(final boolean value) {
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(){
return decision;
return this == YES;
}
/**
* Optimistic interpretation: true iff not NO.
* @return
*/
public boolean decideOptimistically() {
return this != NO;
}
}