package models.terms;
import models.algebra.Symbol;
public abstract class EvaluatableTerm extends RDLTerm{
protected EvaluatableTerm(Symbol symbol, int order, int size) {
super(symbol, order, size);
}
public abstract boolean isLinearRightNormalized();
public LinearRightNormalizedType getLinearRightNormalizedType() {
if (isLinearRightNormalized()) {
return LinearRightNormalizedType.LINEAR_RIGHT_NORMALIZED;
}
return LinearRightNormalizedType.NOT_LINEAR_RIGHT_NORMALIZED;
}
public abstract EvaluatableTerm linearRightNormalize();
public abstract void selfLinearRightNormalize();
}