
com.fathzer.imt.implementation.DefaultEvaluator Maven / Gradle / Ivy
The newest version!
package com.fathzer.imt.implementation;
import com.fathzer.soft.javaluator.BracketPair;
import com.fathzer.soft.javaluator.Operator;
import com.fathzer.soft.javaluator.Parameters;
/** A default logical AbstractLogicalEvaluator that uses ! as NOT operator, && as AND and || as OR.
* @author Jean-Marc Astesana
* @param The type of the table tags.
*/
public abstract class DefaultEvaluator extends AbstractLogicalEvaluator {
/** The negate unary operator.*/
private static final Operator NEGATE = new Operator("!", 1, Operator.Associativity.RIGHT, 3);
/** The logical AND operator.*/
private static final Operator AND = new Operator("&&", 2, Operator.Associativity.LEFT, 2);
/** The logical OR operator.*/
private static final Operator OR = new Operator("||", 2, Operator.Associativity.LEFT, 1);
private static final Parameters PARAMETERS;
static {
// Create the evaluator's parameters
PARAMETERS = new Parameters();
// Add the supported operators
PARAMETERS.add(AND);
PARAMETERS.add(OR);
PARAMETERS.add(NEGATE);
PARAMETERS.addExpressionBracket(BracketPair.PARENTHESES);
}
/** Constructor.
*/
public DefaultEvaluator() {
super(PARAMETERS);
}
@Override
protected Operator getNegate() {
return NEGATE;
}
@Override
protected Operator getAnd() {
return AND;
}
@Override
protected Operator getOr() {
return OR;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy