public class BinaryNonCommutativeIQTreeImpl extends AbstractCompositeIQTree<BinaryNonCommutativeOperatorNode> implements BinaryNonCommutativeIQTree
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 com.google.common.collect.ImmutableSet<ImmutableSubstitution<NonVariableTerm>> |
computePossibleVariableDefinitions() |
protected com.google.common.collect.ImmutableSet<com.google.common.collect.ImmutableSet<Variable>> |
computeUniqueConstraints() |
protected VariableNullability |
computeVariableNullability() |
IQTree |
getLeftChild() |
IQTree |
getRightChild() |
boolean |
isConstructed(Variable variable)
Returns true if the variable is (at least in one branch) constructed by a substitution
(in a construction node)
|
boolean |
isDeclaredAsEmpty()
Returns true if corresponds to a EmptyNode
|
IQTree |
liftIncompatibleDefinitions(Variable variable,
VariableGenerator variableGenerator)
Tries to lift unions when they have incompatible definitions
for a variable.
|
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, computeVariables, equals, getChildren, getKnownVariables, getPossibleVariableDefinitions, getProperties, getRootNode, getTreeCache, getVariableNullability, getVariables, hashCode, inferUniqueConstraints, isDistinct, isEquivalentTo, normalizeDescendingSubstitution, toString, validateclone, finalize, getClass, notify, notifyAll, wait, wait, waitgetRootNodeapplyDescendingSubstitution, applyFreshRenaming, getChildren, getKnownVariables, getPossibleVariableDefinitions, getVariableNullability, getVariables, inferUniqueConstraints, isDistinct, isEquivalentTo, isLeaf, validatepublic IQTree getLeftChild()
getLeftChild in interface BinaryNonCommutativeIQTreepublic IQTree getRightChild()
getRightChild in interface BinaryNonCommutativeIQTreepublic 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)
IQTreeliftIncompatibleDefinitions in interface IQTreeprotected IQTree applyFreshRenaming(InjectiveVar2VarSubstitution renamingSubstitution, boolean alreadyNormalized)
applyFreshRenaming in class AbstractCompositeIQTree<BinaryNonCommutativeOperatorNode>protected IQTree applyRegularDescendingSubstitution(ImmutableSubstitution<? extends VariableOrGroundTerm> descendingSubstitution, Optional<ImmutableExpression> constraint)
applyRegularDescendingSubstitution in class AbstractCompositeIQTree<BinaryNonCommutativeOperatorNode>public IQTree applyDescendingSubstitutionWithoutOptimizing(ImmutableSubstitution<? extends VariableOrGroundTerm> descendingSubstitution)
IQTreeapplyDescendingSubstitutionWithoutOptimizing in interface IQTreepublic boolean isConstructed(Variable variable)
IQTreeisConstructed in interface IQTreeprotected boolean computeIsDistinct()
computeIsDistinct in class AbstractCompositeIQTree<BinaryNonCommutativeOperatorNode>public boolean isDeclaredAsEmpty()
IQTreeisDeclaredAsEmpty in interface IQTreeprotected VariableNullability computeVariableNullability()
computeVariableNullability in class AbstractCompositeIQTree<BinaryNonCommutativeOperatorNode>public IQTree propagateDownConstraint(ImmutableExpression constraint)
IQTreepropagateDownConstraint in interface IQTreepublic IQTree removeDistincts()
IQTreeremoveDistincts in interface IQTreepublic IQTree replaceSubTree(IQTree subTreeToReplace, IQTree newSubTree)
IQTreereplaceSubTree in interface IQTreeprotected com.google.common.collect.ImmutableSet<ImmutableSubstitution<NonVariableTerm>> computePossibleVariableDefinitions()
computePossibleVariableDefinitions in class AbstractCompositeIQTree<BinaryNonCommutativeOperatorNode>protected void validateNode()
throws InvalidIntermediateQueryException
AbstractCompositeIQTreevalidateNode in class AbstractCompositeIQTree<BinaryNonCommutativeOperatorNode>InvalidIntermediateQueryExceptionprotected com.google.common.collect.ImmutableSet<com.google.common.collect.ImmutableSet<Variable>> computeUniqueConstraints()
computeUniqueConstraints in class AbstractCompositeIQTree<BinaryNonCommutativeOperatorNode>Copyright © 2009–2020 Free University of Bozen-Bolzano. All rights reserved.