
it.unibz.inf.ontop.model.term.ImmutableTerm Maven / Gradle / Ivy
package it.unibz.inf.ontop.model.term;
import com.google.common.collect.ImmutableSet;
import it.unibz.inf.ontop.iq.node.VariableNullability;
import it.unibz.inf.ontop.model.type.TermTypeInference;
import java.util.Optional;
import java.util.stream.Stream;
/**
* Term that is guaranteed to be immutable.
*
* In the future, every term should be immutable
*/
public interface ImmutableTerm {
/**
* Returns true if and only if the term is a NULL Constant.
*/
boolean isNull();
boolean isGround();
Stream getVariableStream();
/**
* Returns empty when no TermType has been inferred (missing information or fatal error)
* and no non-fatal error has been detected.
*/
Optional inferType();
IncrementalEvaluation evaluateStrictEq(ImmutableTerm otherTerm, VariableNullability variableNullability);
IncrementalEvaluation evaluateIsNotNull(VariableNullability variableNullability);
ImmutableTerm simplify(VariableNullability variableNullability);
/**
* When no variableNullability is available
*/
ImmutableTerm simplify();
boolean isNullable(ImmutableSet nullableVariables);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy