public class DefaultQueryTreeComponent extends Object implements QueryTreeComponent
| Modifier | Constructor and Description |
|---|---|
protected |
DefaultQueryTreeComponent(QueryTree tree,
CoreUtilsFactory coreUtilsFactory)
TODO: explain
|
| Modifier and Type | Method and Description |
|---|---|
void |
addChild(QueryNode parentNode,
QueryNode childNode,
Optional<BinaryOrderedOperatorNode.ArgumentPosition> optionalPosition,
boolean canReplace)
Please consider using an IntermediateQueryBuilder instead of this tree component.
|
void |
addSubTree(IntermediateQuery subQuery,
QueryNode subQueryTopNode,
QueryNode localTopNode) |
boolean |
contains(QueryNode node) |
QueryTreeComponent |
createSnapshot()
Keeps the same query node objects but clones the tree edges
(since the latter are mutable by default).
|
Variable |
generateNewVariable()
Returns a variable that is not used in the intermediate query.
|
Variable |
generateNewVariable(Variable formerVariable)
Returns a variable that is not used in the intermediate query.
|
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<QueryNode> |
getAncestors(QueryNode descendantNode)
From the parent to the oldest ancestor.
|
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<QueryNode> |
getChildren(QueryNode node) |
Stream<QueryNode> |
getChildrenStream(QueryNode node) |
Optional<QueryNode> |
getFirstChild(QueryNode node) |
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<IntensionalDataNode> |
getIntensionalNodes() |
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> |
getKnownVariables()
All the possibly already allocated variables
|
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<QueryNode> |
getNodesInBottomUpOrder() |
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<QueryNode> |
getNodesInTopDownOrder() |
Optional<BinaryOrderedOperatorNode.ArgumentPosition> |
getOptionalPosition(QueryNode parentNode,
QueryNode childNode) |
Optional<QueryNode> |
getParent(QueryNode node) |
QueryNode |
getRootNode() |
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<QueryNode> |
getSubTreeNodesInTopDownOrder(QueryNode currentNode)
All the nodes EXCEPT the root of this sub-tree
|
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<TrueNode> |
getTrueNodes() |
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> |
getVariables(QueryNode node)
TODO: optimize by it but materializing (and maintaining) the results.
|
UUID |
getVersionNumber()
The version number of the query.
|
void |
insertParent(QueryNode childNode,
QueryNode newParentNode)
Inserts a new node between a node and its former parent (now grand-parent)
|
void |
insertParent(QueryNode childNode,
QueryNode newParentNode,
Optional<BinaryOrderedOperatorNode.ArgumentPosition> optionalPosition)
Inserts a new node between a node and its former parent (now grand-parent)
|
Optional<QueryNode> |
nextSibling(QueryNode node) |
QueryNode |
removeOrReplaceNodeByUniqueChild(QueryNode node)
TODO: explain
|
void |
removeSubTree(QueryNode subTreeRoot) |
void |
replaceNode(QueryNode previousNode,
QueryNode replacingNode) |
QueryNode |
replaceNodeByChild(QueryNode parentNode,
Optional<BinaryOrderedOperatorNode.ArgumentPosition> optionalReplacingChildPosition)
If no position is given, replaces the parent node by its first child
|
void |
replaceNodesByOneNode(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<QueryNode> queryNodes,
QueryNode replacingNode,
QueryNode parentNode,
Optional<BinaryOrderedOperatorNode.ArgumentPosition> optionalPosition)
TODO: explain
|
void |
replaceSubTree(QueryNode subTreeRootNode,
QueryNode replacingNode)
Replaces all the sub-tree by one sub-tree node
|
QueryNode |
replaceSubTreeByIQ(QueryNode subTreeRoot,
IQTree replacingSubTree) |
void |
transferChild(QueryNode childNode,
QueryNode formerParentNode,
QueryNode newParentNode,
Optional<BinaryOrderedOperatorNode.ArgumentPosition> optionalPosition)
Transfers a child node from a parent to another parent
|
protected DefaultQueryTreeComponent(QueryTree tree, CoreUtilsFactory coreUtilsFactory)
public it.unibz.inf.ontop.com.google.common.collect.ImmutableList<QueryNode> getChildren(QueryNode node)
getChildren in interface QueryTreeComponentpublic Stream<QueryNode> getChildrenStream(QueryNode node)
getChildrenStream in interface QueryTreeComponentpublic QueryNode getRootNode()
getRootNode in interface QueryTreeComponentpublic it.unibz.inf.ontop.com.google.common.collect.ImmutableList<QueryNode> getNodesInBottomUpOrder()
getNodesInBottomUpOrder in interface QueryTreeComponentpublic it.unibz.inf.ontop.com.google.common.collect.ImmutableList<QueryNode> getNodesInTopDownOrder() throws IllegalTreeException
getNodesInTopDownOrder in interface QueryTreeComponentIllegalTreeExceptionpublic it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<TrueNode> getTrueNodes()
getTrueNodes in interface QueryTreeComponentpublic it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<IntensionalDataNode> getIntensionalNodes()
getIntensionalNodes in interface QueryTreeComponentpublic boolean contains(QueryNode node)
contains in interface QueryTreeComponentpublic void replaceNode(QueryNode previousNode, QueryNode replacingNode)
replaceNode in interface QueryTreeComponentpublic void replaceSubTree(QueryNode subTreeRootNode, QueryNode replacingNode)
QueryTreeComponentreplaceSubTree in interface QueryTreeComponentpublic void addSubTree(IntermediateQuery subQuery, QueryNode subQueryTopNode, QueryNode localTopNode) throws IllegalTreeUpdateException
addSubTree in interface QueryTreeComponentIllegalTreeUpdateExceptionpublic void removeSubTree(QueryNode subTreeRoot)
removeSubTree in interface QueryTreeComponentpublic it.unibz.inf.ontop.com.google.common.collect.ImmutableList<QueryNode> getSubTreeNodesInTopDownOrder(QueryNode currentNode)
QueryTreeComponentgetSubTreeNodesInTopDownOrder in interface QueryTreeComponentpublic Optional<BinaryOrderedOperatorNode.ArgumentPosition> getOptionalPosition(QueryNode parentNode, QueryNode childNode)
getOptionalPosition in interface QueryTreeComponentpublic it.unibz.inf.ontop.com.google.common.collect.ImmutableList<QueryNode> getAncestors(QueryNode descendantNode) throws IllegalTreeException
QueryTreeComponentgetAncestors in interface QueryTreeComponentIllegalTreeExceptionpublic Optional<QueryNode> getParent(QueryNode node) throws IllegalTreeException
getParent in interface QueryTreeComponentIllegalTreeExceptionpublic QueryNode removeOrReplaceNodeByUniqueChild(QueryNode node) throws IllegalTreeUpdateException
QueryTreeComponentremoveOrReplaceNodeByUniqueChild in interface QueryTreeComponentIllegalTreeUpdateExceptionpublic void replaceNodesByOneNode(it.unibz.inf.ontop.com.google.common.collect.ImmutableList<QueryNode> queryNodes, QueryNode replacingNode, QueryNode parentNode, Optional<BinaryOrderedOperatorNode.ArgumentPosition> optionalPosition) throws IllegalTreeUpdateException
QueryTreeComponentreplaceNodesByOneNode in interface QueryTreeComponentIllegalTreeUpdateExceptionpublic void addChild(QueryNode parentNode, QueryNode childNode, Optional<BinaryOrderedOperatorNode.ArgumentPosition> optionalPosition, boolean canReplace) throws IllegalTreeUpdateException
QueryTreeComponentaddChild in interface QueryTreeComponentIllegalTreeUpdateExceptionpublic Optional<QueryNode> nextSibling(QueryNode node) throws IllegalTreeException
nextSibling in interface QueryTreeComponentIllegalTreeExceptionpublic Optional<QueryNode> getFirstChild(QueryNode node)
getFirstChild in interface QueryTreeComponentpublic void insertParent(QueryNode childNode, QueryNode newParentNode) throws IllegalTreeUpdateException
QueryTreeComponentinsertParent in interface QueryTreeComponentIllegalTreeUpdateExceptionpublic void insertParent(QueryNode childNode, QueryNode newParentNode, Optional<BinaryOrderedOperatorNode.ArgumentPosition> optionalPosition) throws IllegalTreeUpdateException
QueryTreeComponentinsertParent in interface QueryTreeComponentIllegalTreeUpdateExceptionpublic void transferChild(QueryNode childNode, QueryNode formerParentNode, QueryNode newParentNode, Optional<BinaryOrderedOperatorNode.ArgumentPosition> optionalPosition) throws IllegalTreeUpdateException
QueryTreeComponenttransferChild in interface QueryTreeComponentIllegalTreeUpdateExceptionpublic Variable generateNewVariable()
QueryTreeComponentgenerateNewVariable in interface QueryTreeComponentpublic Variable generateNewVariable(Variable formerVariable)
QueryTreeComponentgenerateNewVariable in interface QueryTreeComponentpublic it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> getKnownVariables()
QueryTreeComponentgetKnownVariables in interface QueryTreeComponentpublic QueryNode replaceNodeByChild(QueryNode parentNode, Optional<BinaryOrderedOperatorNode.ArgumentPosition> optionalReplacingChildPosition)
QueryTreeComponentreplaceNodeByChild in interface QueryTreeComponentpublic QueryTreeComponent createSnapshot()
QueryTreeComponentcreateSnapshot in interface QueryTreeComponentpublic it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<Variable> getVariables(QueryNode node)
getVariables in interface QueryTreeComponentpublic UUID getVersionNumber()
QueryTreeComponentgetVersionNumber in interface QueryTreeComponentpublic QueryNode replaceSubTreeByIQ(QueryNode subTreeRoot, IQTree replacingSubTree)
replaceSubTreeByIQ in interface QueryTreeComponentCopyright © 2009–2021 Free University of Bozen-Bolzano. All rights reserved.