public abstract class ImmutableFunctionalTermImpl extends Object implements ImmutableFunctionalTerm
ImmutableFunctionalTerm.FunctionalTermDecomposition| Modifier | Constructor and Description |
|---|---|
protected |
ImmutableFunctionalTermImpl(FunctionSymbol functionSymbol,
com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms,
TermFactory termFactory) |
protected |
ImmutableFunctionalTermImpl(FunctionSymbol functor,
TermFactory termFactory,
ImmutableTerm... terms) |
| Modifier and Type | Method and Description |
|---|---|
Optional<ImmutableFunctionalTerm.FunctionalTermDecomposition> |
analyzeInjectivity(com.google.common.collect.ImmutableSet<Variable> nonFreeVariables,
VariableNullability variableNullability,
VariableGenerator variableGenerator)
Returns an empty optional when no decomposition is possible
In the decomposition, the liftable term is injective.
|
boolean |
canBePostProcessed()
Returns true if it can be post-processed modulo some decomposition
(i.e.
|
boolean |
equals(Object other)
TODO: A bit hacky: only for the functional term
that derives from ImmutableFunctionalTermImpl
|
IncrementalEvaluation |
evaluateIsNotNull(VariableNullability variableNullability) |
IncrementalEvaluation |
evaluateStrictEq(ImmutableTerm otherTerm,
VariableNullability variableNullability) |
int |
getArity() |
FunctionSymbol |
getFunctionSymbol() |
ImmutableTerm |
getTerm(int index) |
com.google.common.collect.ImmutableList<? extends ImmutableTerm> |
getTerms() |
com.google.common.collect.ImmutableSet<Variable> |
getVariables() |
Stream<Variable> |
getVariableStream() |
int |
hashCode() |
boolean |
isNullable(com.google.common.collect.ImmutableSet<Variable> nullableVariables) |
Stream<Variable> |
proposeProvenanceVariables()
Returns some variables are required to non-null for the functional term to be non-null.
|
ImmutableTerm |
simplify()
When no variableNullability is available
|
ImmutableTerm |
simplify(VariableNullability variableNullability) |
FunctionalTermSimplification |
simplifyAsGuaranteedToBeNonNull()
In some occasions, we now that a functional term will never produce a NULL in a given context
(e.g.
|
String |
toString()
Cached toString()
|
clone, finalize, getClass, notify, notifyAll, wait, wait, waitinferTypeisNullisGroundprotected ImmutableFunctionalTermImpl(FunctionSymbol functor, TermFactory termFactory, ImmutableTerm... terms)
protected ImmutableFunctionalTermImpl(FunctionSymbol functionSymbol, com.google.common.collect.ImmutableList<? extends ImmutableTerm> terms, TermFactory termFactory)
public ImmutableTerm getTerm(int index)
getTerm in interface ImmutableFunctionalTermpublic FunctionSymbol getFunctionSymbol()
getFunctionSymbol in interface ImmutableFunctionalTermpublic int getArity()
getArity in interface ImmutableFunctionalTermpublic com.google.common.collect.ImmutableList<? extends ImmutableTerm> getTerms()
getTerms in interface ImmutableFunctionalTermpublic com.google.common.collect.ImmutableSet<Variable> getVariables()
getVariables in interface ImmutableFunctionalTermpublic Stream<Variable> getVariableStream()
getVariableStream in interface ImmutableTermpublic boolean equals(Object other)
public IncrementalEvaluation evaluateStrictEq(ImmutableTerm otherTerm, VariableNullability variableNullability)
evaluateStrictEq in interface ImmutableTermpublic IncrementalEvaluation evaluateIsNotNull(VariableNullability variableNullability)
evaluateIsNotNull in interface ImmutableTermpublic ImmutableTerm simplify(VariableNullability variableNullability)
simplify in interface ImmutableTermpublic ImmutableTerm simplify()
ImmutableTermsimplify in interface ImmutableTermpublic Optional<ImmutableFunctionalTerm.FunctionalTermDecomposition> analyzeInjectivity(com.google.common.collect.ImmutableSet<Variable> nonFreeVariables, VariableNullability variableNullability, VariableGenerator variableGenerator)
ImmutableFunctionalTermanalyzeInjectivity in interface ImmutableFunctionalTermpublic Stream<Variable> proposeProvenanceVariables()
ImmutableFunctionalTermproposeProvenanceVariables in interface ImmutableFunctionalTermpublic FunctionalTermSimplification simplifyAsGuaranteedToBeNonNull()
ImmutableFunctionalTermsimplifyAsGuaranteedToBeNonNull in interface ImmutableFunctionalTermpublic boolean canBePostProcessed()
ImmutableFunctionalTermcanBePostProcessed in interface ImmutableFunctionalTermpublic boolean isNullable(com.google.common.collect.ImmutableSet<Variable> nullableVariables)
isNullable in interface ImmutableTermCopyright © 2009–2020 Free University of Bozen-Bolzano. All rights reserved.