All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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