public class NaryIQTreeImpl extends AbstractCompositeIQTree<NaryOperatorNode> implements NaryIQTree
iqFactory, iqTreeTools| Modifier and Type | Method and Description |
|---|---|
IQTree |
acceptTransformer(IQTreeVisitingTransformer transformer) |
<T> T |
acceptVisitor(IQVisitor<T> visitor) |
IQTree |
applyDescendingSubstitutionWithoutOptimizing(ImmutableSubstitution<? extends VariableOrGroundTerm> descendingSubstitution)
Applies the descending substitution WITHOUT applying any additional optimization.
|
protected IQTree |
applyFreshRenaming(InjectiveVar2VarSubstitution renamingSubstitution,
boolean alreadyNormalized) |
protected IQTree |
applyRegularDescendingSubstitution(ImmutableSubstitution<? extends VariableOrGroundTerm> descendingSubstitution,
Optional<ImmutableExpression> constraint) |
protected boolean |
computeIsDistinct() |
protected it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> |
computeNotInternallyRequiredVariables() |
protected it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<ImmutableSubstitution<NonVariableTerm>> |
computePossibleVariableDefinitions() |
protected it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable>> |
computeUniqueConstraints() |
protected VariableNullability |
computeVariableNullability() |
boolean |
isConstructed(Variable variable)
TODO: should we cache the boolean?
|
boolean |
isDeclaredAsEmpty()
Returns true if corresponds to a EmptyNode
|
IQTree |
liftIncompatibleDefinitions(Variable variable,
VariableGenerator variableGenerator)
TODO: use the properties for optimization purposes?
|
IQTree |
normalizeForOptimization(VariableGenerator variableGenerator) |
IQTree |
propagateDownConstraint(ImmutableExpression constraint)
TODO: explain
The constraint is used for pruning.
|
IQTree |
removeDistincts()
TODO: find a better name
|
IQTree |
replaceSubTree(IQTree subTreeToReplace,
IQTree newSubTree)
If subTreeToReplace is not found, has no effect (besides creating a novel copy).
|
protected void |
validateNode()
Only validates the node, not its children
|
applyDescendingSubstitution, applyFreshRenaming, applyFreshRenamingToAllVariables, computeVariables, equals, getChildren, getKnownVariables, getNotInternallyRequiredVariables, getPossibleVariableDefinitions, getProperties, getRootNode, getTreeCache, getVariableNullability, getVariables, hashCode, inferUniqueConstraints, isDistinct, isEquivalentTo, normalizeDescendingSubstitution, toString, validateclone, finalize, getClass, notify, notifyAll, wait, wait, waitgetRootNodeapplyDescendingSubstitution, applyFreshRenaming, applyFreshRenamingToAllVariables, getChildren, getKnownVariables, getNotInternallyRequiredVariables, getPossibleVariableDefinitions, getVariableNullability, getVariables, inferUniqueConstraints, isDistinct, isEquivalentTo, isLeaf, validateprotected void validateNode()
throws InvalidIntermediateQueryException
AbstractCompositeIQTreevalidateNode in class AbstractCompositeIQTree<NaryOperatorNode>InvalidIntermediateQueryExceptionprotected VariableNullability computeVariableNullability()
computeVariableNullability in class AbstractCompositeIQTree<NaryOperatorNode>public IQTree acceptTransformer(IQTreeVisitingTransformer transformer)
acceptTransformer in interface IQTreepublic <T> T acceptVisitor(IQVisitor<T> visitor)
acceptVisitor in interface IQTreepublic IQTree normalizeForOptimization(VariableGenerator variableGenerator)
normalizeForOptimization in interface IQTreepublic IQTree liftIncompatibleDefinitions(Variable variable, VariableGenerator variableGenerator)
liftIncompatibleDefinitions in interface IQTreeprotected IQTree applyFreshRenaming(InjectiveVar2VarSubstitution renamingSubstitution, boolean alreadyNormalized)
applyFreshRenaming in class AbstractCompositeIQTree<NaryOperatorNode>protected IQTree applyRegularDescendingSubstitution(ImmutableSubstitution<? extends VariableOrGroundTerm> descendingSubstitution, Optional<ImmutableExpression> constraint)
applyRegularDescendingSubstitution in class AbstractCompositeIQTree<NaryOperatorNode>public IQTree applyDescendingSubstitutionWithoutOptimizing(ImmutableSubstitution<? extends VariableOrGroundTerm> descendingSubstitution)
IQTreeapplyDescendingSubstitutionWithoutOptimizing in interface IQTreepublic boolean isConstructed(Variable variable)
isConstructed in interface IQTreeprotected boolean computeIsDistinct()
computeIsDistinct in class AbstractCompositeIQTree<NaryOperatorNode>public boolean isDeclaredAsEmpty()
IQTreeisDeclaredAsEmpty in interface IQTreepublic IQTree propagateDownConstraint(ImmutableExpression constraint)
IQTreepropagateDownConstraint in interface IQTreepublic IQTree replaceSubTree(IQTree subTreeToReplace, IQTree newSubTree)
IQTreereplaceSubTree in interface IQTreeprotected it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<ImmutableSubstitution<NonVariableTerm>> computePossibleVariableDefinitions()
computePossibleVariableDefinitions in class AbstractCompositeIQTree<NaryOperatorNode>public IQTree removeDistincts()
IQTreeremoveDistincts in interface IQTreeprotected it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable>> computeUniqueConstraints()
computeUniqueConstraints in class AbstractCompositeIQTree<NaryOperatorNode>protected it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> computeNotInternallyRequiredVariables()
computeNotInternallyRequiredVariables in class AbstractCompositeIQTree<NaryOperatorNode>Copyright © 2009–2020 Free University of Bozen-Bolzano. All rights reserved.