![JAR search and dependency download from the Maven repository](/logo.png)
org.snapscript.tree.operation.SignOperator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of snap-all Show documentation
Show all versions of snap-all Show documentation
Dynamic scripting for the JVM
package org.snapscript.tree.operation;
import org.snapscript.core.Value;
import org.snapscript.parse.StringToken;
public enum SignOperator {
NONE(""){
@Override
public Value operate(Number value) {
NumericConverter converter = NumericConverter.resolveConverter(value);
Double decimal = value.doubleValue();
return converter.convert(decimal);
}
},
PLUS("+"){
@Override
public Value operate(Number value) {
NumericConverter converter = NumericConverter.resolveConverter(value);
Double decimal = value.doubleValue();
return converter.convert(+decimal);
}
},
MINUS("-"){
@Override
public Value operate(Number value) {
NumericConverter converter = NumericConverter.resolveConverter(value);
Double decimal = value.doubleValue();
return converter.convert(-decimal);
}
};
public final String operator;
private SignOperator(String operator){
this.operator = operator;
}
public abstract Value operate(Number right);
public static SignOperator resolveOperator(StringToken token) {
if(token != null) {
String value = token.getValue();
SignOperator[] operators = SignOperator.values();
for(SignOperator operator : operators) {
if(operator.operator.equals(value)) {
return operator;
}
}
}
return NONE;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy