public abstract class LeafIQTreeImpl extends QueryNodeImpl implements LeafIQTree
| Modifier and Type | Field and Description |
|---|---|
protected IntermediateQueryFactory |
iqFactory |
| Modifier | Constructor and Description |
|---|---|
protected |
LeafIQTreeImpl(IQTreeTools iqTreeTools,
IntermediateQueryFactory iqFactory) |
| Modifier and Type | Method and Description |
|---|---|
IQTree |
applyDescendingSubstitution(ImmutableSubstitution<? extends VariableOrGroundTerm> descendingSubstitution,
Optional<ImmutableExpression> constraint)
NB: the constraint is irrelevant here
|
com.google.common.collect.ImmutableList<IQTree> |
getChildren() |
com.google.common.collect.ImmutableSet<ImmutableSubstitution<NonVariableTerm>> |
getPossibleVariableDefinitions()
Returns a set of substitutions that define the projected variables when they are constructed.
|
LeafIQTree |
getRootNode() |
boolean |
isConstructed(Variable variable)
Returns true if the variable is (at least in one branch) constructed by a substitution
(in a construction node)
|
boolean |
isEquivalentTo(IQTree tree) |
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).
|
cloneequals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitacceptNodeTransformeracceptTransformer, acceptVisitor, applyDescendingSubstitutionWithoutOptimizing, applyFreshRenaming, getKnownVariables, getNotInternallyRequiredVariables, getVariableNullability, getVariables, inferUniqueConstraints, isDeclaredAsEmpty, isDistinct, isLeaf, validategetVariablesacceptVisitor, clone, getLocallyDefinedVariables, getLocallyRequiredVariables, getLocalVariables, getRequiredVariables, isEquivalentTo, isSyntacticallyEquivalentTo, isVariableNullableprotected final IntermediateQueryFactory iqFactory
protected LeafIQTreeImpl(IQTreeTools iqTreeTools, IntermediateQueryFactory iqFactory)
public LeafIQTree getRootNode()
getRootNode in interface IQTreegetRootNode in interface LeafIQTreepublic com.google.common.collect.ImmutableList<IQTree> getChildren()
getChildren in interface IQTreepublic IQTree normalizeForOptimization(VariableGenerator variableGenerator)
normalizeForOptimization in interface IQTreepublic boolean isConstructed(Variable variable)
IQTreeisConstructed in interface IQTreepublic boolean isEquivalentTo(IQTree tree)
isEquivalentTo in interface IQTreepublic final IQTree applyDescendingSubstitution(ImmutableSubstitution<? extends VariableOrGroundTerm> descendingSubstitution, Optional<ImmutableExpression> constraint)
applyDescendingSubstitution in interface IQTreepublic IQTree propagateDownConstraint(ImmutableExpression constraint)
IQTreepropagateDownConstraint in interface IQTreepublic IQTree replaceSubTree(IQTree subTreeToReplace, IQTree newSubTree)
IQTreereplaceSubTree in interface IQTreepublic com.google.common.collect.ImmutableSet<ImmutableSubstitution<NonVariableTerm>> getPossibleVariableDefinitions()
IQTreegetPossibleVariableDefinitions in interface IQTreepublic IQTree liftIncompatibleDefinitions(Variable variable, VariableGenerator variableGenerator)
IQTreeliftIncompatibleDefinitions in interface IQTreepublic IQTree removeDistincts()
IQTreeremoveDistincts in interface IQTreeCopyright © 2009–2020 Free University of Bozen-Bolzano. All rights reserved.