mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-18 18:23:06 +00:00
BooleanHandler
This commit is contained in:
parent
3b6d3116bd
commit
a471bfec6a
@ -0,0 +1,72 @@
|
||||
package com.volmit.iris.util.decree.handlers;
|
||||
|
||||
import com.volmit.iris.util.collection.KList;
|
||||
import com.volmit.iris.util.decree.DecreeParameterHandler;
|
||||
import com.volmit.iris.util.decree.exceptions.DecreeParsingException;
|
||||
import com.volmit.iris.util.decree.exceptions.DecreeWhichException;
|
||||
|
||||
public class BooleanHandler implements DecreeParameterHandler<Boolean> {
|
||||
private static final KList<String> trues = new KList<>(
|
||||
"true",
|
||||
"yes",
|
||||
"t",
|
||||
"1"
|
||||
);
|
||||
private static final KList<String> falses = new KList<>(
|
||||
"false",
|
||||
"no",
|
||||
"f",
|
||||
"0"
|
||||
);
|
||||
|
||||
/**
|
||||
* Should return the possible values for this type
|
||||
*
|
||||
* @return Possibilities for this type.
|
||||
*/
|
||||
@Override
|
||||
public KList<Boolean> getPossibilities() {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converting the type back to a string (inverse of the {@link #parse(String) parse} method)
|
||||
*
|
||||
* @param aBoolean The input of the designated type to convert to a String
|
||||
* @return The resulting string
|
||||
*/
|
||||
@Override
|
||||
public String toString(Boolean aBoolean) {
|
||||
return aBoolean.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Should parse a String into the designated type
|
||||
*
|
||||
* @param in The string to parse
|
||||
* @return The value extracted from the string, of the designated type
|
||||
* @throws DecreeParsingException Thrown when the parsing fails (ex: "oop" translated to an integer throws this)
|
||||
* @throws DecreeWhichException Thrown when multiple results are possible
|
||||
*/
|
||||
@Override
|
||||
public Boolean parse(String in) throws DecreeParsingException, DecreeWhichException {
|
||||
if (trues.contains(in)){
|
||||
return true;
|
||||
}
|
||||
if (falses.contains(in)){
|
||||
return false;
|
||||
}
|
||||
throw new DecreeParsingException("Cannot convert \"" + in + "\" to a boolean (" + trues.toString(", ") + " / " + falses.toString(", ") + ")");
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether a certain type is supported by this handler<br>
|
||||
*
|
||||
* @param type The type to check
|
||||
* @return True if supported, false if not
|
||||
*/
|
||||
@Override
|
||||
public boolean supports(Class<?> type) {
|
||||
return type.equals(boolean.class) || type.equals(Boolean.class);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user