public class EmptyNodeImpl extends LeafIQTreeImpl implements EmptyNode
iqFactory| Modifier and Type | Method and Description |
|---|---|
EmptyNode |
acceptNodeTransformer(HomogeneousQueryNodeTransformer transformer)
"Accept" method for the "Visitor" pattern.
|
IQTree |
acceptTransformer(IQTreeVisitingTransformer transformer) |
<T> T |
acceptVisitor(IQVisitor<T> visitor) |
void |
acceptVisitor(QueryNodeVisitor visitor)
"Accept" method for the "Visitor" pattern.
|
IQTree |
applyDescendingSubstitutionWithoutOptimizing(ImmutableSubstitution<? extends VariableOrGroundTerm> descendingSubstitution)
Applies the descending substitution WITHOUT applying any additional optimization.
|
IQTree |
applyFreshRenaming(InjectiveVar2VarSubstitution freshRenamingSubstitution)
Particular type of descending substitution: only renaming some variables by external ones.
|
EmptyNode |
clone()
See https://stackoverflow.com/questions/6837362/
|
com.google.common.collect.ImmutableSet<Variable> |
getKnownVariables()
Variables present in the tree
|
com.google.common.collect.ImmutableSet<Variable> |
getLocallyDefinedVariables()
Locally defined variables must not appear in the sub-tree
|
com.google.common.collect.ImmutableSet<Variable> |
getLocallyRequiredVariables()
Set of variables that this node, INDEPENDENTLY OF THE REQUIREMENTS OF ITS ANCESTORS,
requires to be defined in the sub-tree.
|
com.google.common.collect.ImmutableSet<Variable> |
getLocalVariables()
Set of variables MENTIONED in the node, INDEPENDENTLY of its sub-tree.
|
com.google.common.collect.ImmutableSet<Variable> |
getRequiredVariables(IntermediateQuery query)
Set of variables which, individually, must be provided by at least one child,
INDEPENDENTLY OF THE REQUIREMENTS OF THIS NODE'S ANCESTORS.
|
VariableNullability |
getVariableNullability() |
com.google.common.collect.ImmutableSet<Variable> |
getVariables()
Variables projected by the tree
|
com.google.common.collect.ImmutableSet<com.google.common.collect.ImmutableSet<Variable>> |
inferUniqueConstraints()
NOT guaranteed to return all the unique constraints (MAY BE INCOMPLETE)
Set of sets of determinants
|
boolean |
isDeclaredAsEmpty()
Returns true if corresponds to a EmptyNode
|
boolean |
isDistinct()
Returns true if it guarantees that all its results will be distinct
|
boolean |
isEquivalentTo(QueryNode queryNode)
Is syntactically equivalent
|
boolean |
isSyntacticallyEquivalentTo(QueryNode node)
TODO: explain
|
boolean |
isVariableNullable(IntermediateQuery query,
Variable variable)
Returns true if it cannot guarantee the projected variable to be non-null
Throws an IllegalArgumentException if the variable is not projected by the node
|
String |
toString() |
void |
validate() |
applyDescendingSubstitution, getChildren, getPossibleVariableDefinitions, getRootNode, isConstructed, isEquivalentTo, liftIncompatibleDefinitions, normalizeForOptimization, propagateDownConstraint, removeDistincts, replaceSubTreeequals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetRootNodeapplyDescendingSubstitution, getChildren, getPossibleVariableDefinitions, isConstructed, isEquivalentTo, isLeaf, liftIncompatibleDefinitions, normalizeForOptimization, propagateDownConstraint, removeDistincts, replaceSubTreepublic void acceptVisitor(QueryNodeVisitor visitor)
QueryNodeacceptVisitor in interface QueryNodepublic EmptyNode acceptNodeTransformer(HomogeneousQueryNodeTransformer transformer) throws QueryNodeTransformationException
QueryNodeacceptNodeTransformer in interface LeafIQTreeacceptNodeTransformer in interface EmptyNodeacceptNodeTransformer in interface QueryNodeQueryNodeTransformationExceptionpublic com.google.common.collect.ImmutableSet<Variable> getLocalVariables()
QueryNodegetLocalVariables in interface QueryNodepublic boolean isVariableNullable(IntermediateQuery query, Variable variable)
QueryNodeisVariableNullable in interface QueryNodepublic boolean isSyntacticallyEquivalentTo(QueryNode node)
QueryNodeisSyntacticallyEquivalentTo in interface QueryNodepublic EmptyNode clone()
QueryNodeImplpublic com.google.common.collect.ImmutableSet<Variable> getVariables()
IQTreegetVariables in interface IQTreegetVariables in interface ExplicitVariableProjectionNodepublic IQTree acceptTransformer(IQTreeVisitingTransformer transformer)
acceptTransformer in interface IQTreepublic <T> T acceptVisitor(IQVisitor<T> visitor)
acceptVisitor in interface IQTreepublic IQTree applyFreshRenaming(InjectiveVar2VarSubstitution freshRenamingSubstitution)
IQTreeapplyFreshRenaming in interface IQTreepublic IQTree applyDescendingSubstitutionWithoutOptimizing(ImmutableSubstitution<? extends VariableOrGroundTerm> descendingSubstitution)
IQTreeapplyDescendingSubstitutionWithoutOptimizing in interface IQTreepublic com.google.common.collect.ImmutableSet<Variable> getKnownVariables()
IQTreegetKnownVariables in interface IQTreepublic boolean isDistinct()
IQTreeisDistinct in interface IQTreepublic boolean isDeclaredAsEmpty()
IQTreeisDeclaredAsEmpty in interface IQTreepublic VariableNullability getVariableNullability()
getVariableNullability in interface IQTreepublic void validate()
throws InvalidIntermediateQueryException
validate in interface IQTreeInvalidIntermediateQueryExceptionpublic com.google.common.collect.ImmutableSet<com.google.common.collect.ImmutableSet<Variable>> inferUniqueConstraints()
IQTreeinferUniqueConstraints in interface IQTreepublic com.google.common.collect.ImmutableSet<Variable> getLocallyRequiredVariables()
QueryNodegetLocallyRequiredVariables in interface QueryNodepublic com.google.common.collect.ImmutableSet<Variable> getRequiredVariables(IntermediateQuery query)
QueryNodegetRequiredVariables in interface QueryNodepublic com.google.common.collect.ImmutableSet<Variable> getLocallyDefinedVariables()
QueryNodegetLocallyDefinedVariables in interface QueryNodepublic boolean isEquivalentTo(QueryNode queryNode)
QueryNodeisEquivalentTo in interface QueryNodeCopyright © 2009–2020 Free University of Bozen-Bolzano. All rights reserved.