public abstract class AbstractJoinTransferLJTransformer extends DefaultNonRecursiveIQTreeTransformer
| Modifier and Type | Class and Description |
|---|---|
protected static class |
AbstractJoinTransferLJTransformer.DataNodeAndReplacement |
protected static class |
AbstractJoinTransferLJTransformer.RenamingAndEqualities |
protected static class |
AbstractJoinTransferLJTransformer.ReplaceNodeByTrueTransformer |
protected static class |
AbstractJoinTransferLJTransformer.SelectedNode |
| Modifier and Type | Field and Description |
|---|---|
protected OptimizationSingletons |
optimizationSingletons |
protected RequiredExtensionalDataNodeExtractor |
requiredDataNodeExtractor |
protected RightProvenanceNormalizer |
rightProvenanceNormalizer |
protected VariableGenerator |
variableGenerator |
| Modifier | Constructor and Description |
|---|---|
protected |
AbstractJoinTransferLJTransformer(Supplier<VariableNullability> variableNullabilitySupplier,
VariableGenerator variableGenerator,
RequiredExtensionalDataNodeExtractor requiredDataNodeExtractor,
RightProvenanceNormalizer rightProvenanceNormalizer,
OptimizationSingletons optimizationSingletons) |
| Modifier and Type | Method and Description |
|---|---|
protected Stream<ExtensionalDataNode> |
extractRightDataNodes(IQTree rightChild)
Can be overridden to put restrictions
|
protected Optional<IQTree> |
furtherTransformLeftJoin(LeftJoinNode rootNode,
IQTree leftChild,
IQTree rightChild)
Returns empty if no optimization has been applied
|
protected VariableNullability |
getInheritedVariableNullability() |
protected Optional<it.unibz.inf.ontop.com.google.common.collect.ImmutableList<Integer>> |
matchForeignKey(ForeignKeyConstraint fk,
it.unibz.inf.ontop.com.google.common.collect.ImmutableCollection<ExtensionalDataNode> leftNodes,
it.unibz.inf.ontop.com.google.common.collect.ImmutableMap<Integer,? extends VariableOrGroundTerm> rightArgumentMap) |
protected Optional<it.unibz.inf.ontop.com.google.common.collect.ImmutableList<Integer>> |
matchFunctionalDependency(FunctionalDependency functionalDependency,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<ExtensionalDataNode> sameRelationLeftNodes,
it.unibz.inf.ontop.com.google.common.collect.ImmutableMap<Integer,? extends VariableOrGroundTerm> rightArgumentMap) |
protected Optional<it.unibz.inf.ontop.com.google.common.collect.ImmutableList<Integer>> |
matchIndexes(it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<ExtensionalDataNode> sameRelationLeftNodes,
it.unibz.inf.ontop.com.google.common.collect.ImmutableMap<Integer,? extends VariableOrGroundTerm> rightArgumentMap,
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<Integer> indexes) |
protected Optional<it.unibz.inf.ontop.com.google.common.collect.ImmutableList<Integer>> |
matchUniqueConstraint(UniqueConstraint uniqueConstraint,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<ExtensionalDataNode> sameRelationLeftNodes,
it.unibz.inf.ontop.com.google.common.collect.ImmutableMap<Integer,? extends VariableOrGroundTerm> rightArgumentMap)
Matches an unique constraint whose determinants are nullable in the tree
|
protected IQTree |
preTransformLJRightChild(IQTree rightChild)
Can be overridden
|
protected abstract Optional<AbstractJoinTransferLJTransformer.SelectedNode> |
selectForTransfer(ExtensionalDataNode rightDataNode,
it.unibz.inf.ontop.com.google.common.collect.ImmutableMultimap<RelationDefinition,ExtensionalDataNode> leftMultimap) |
protected it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<AbstractJoinTransferLJTransformer.SelectedNode> |
selectRightDataNodesToTransfer(it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<ExtensionalDataNode> leftDataNodes,
it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<ExtensionalDataNode> rightDataNodes) |
protected IQTree |
transformBinaryNonCommutativeNode(IQTree tree,
BinaryNonCommutativeOperatorNode rootNode,
IQTree leftChild,
IQTree rightChild) |
protected IQTree |
transformBinaryNonCommutativeNode(IQTree tree,
BinaryNonCommutativeOperatorNode rootNode,
IQTree leftChild,
IQTree rightChild,
Function<IQTree,IQTree> childTransformation) |
protected abstract IQTree |
transformBySearchingFromScratch(IQTree tree) |
IQTree |
transformDistinct(IQTree tree,
DistinctNode rootNode,
IQTree child) |
IQTree |
transformFilter(IQTree tree,
FilterNode rootNode,
IQTree child) |
IQTree |
transformInnerJoin(IQTree tree,
InnerJoinNode rootNode,
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children) |
IQTree |
transformLeftJoin(IQTree tree,
LeftJoinNode rootNode,
IQTree leftChild,
IQTree rightChild) |
protected IQTree |
transformNaryCommutativeNode(IQTree tree,
NaryOperatorNode rootNode,
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children) |
protected IQTree |
transformNaryCommutativeNode(IQTree tree,
NaryOperatorNode rootNode,
it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children,
Function<IQTree,IQTree> childTransformation) |
IQTree |
transformOrderBy(IQTree tree,
OrderByNode rootNode,
IQTree child) |
IQTree |
transformSlice(IQTree tree,
SliceNode sliceNode,
IQTree child) |
protected IQTree |
transformUnaryNode(IQTree tree,
UnaryOperatorNode rootNode,
IQTree child) |
protected IQTree |
transformUnaryNode(IQTree tree,
UnaryOperatorNode rootNode,
IQTree child,
Function<IQTree,IQTree> childTransformation) |
transformAggregation, transformConstruction, transformEmpty, transformExtensionalData, transformIntensionalData, transformLeaf, transformNonStandardBinaryNonCommutativeNode, transformNonStandardLeafNode, transformNonStandardNaryNode, transformNonStandardUnaryNode, transformTrue, transformUnionclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waittransformprotected final VariableGenerator variableGenerator
protected final RequiredExtensionalDataNodeExtractor requiredDataNodeExtractor
protected final RightProvenanceNormalizer rightProvenanceNormalizer
protected final OptimizationSingletons optimizationSingletons
protected AbstractJoinTransferLJTransformer(Supplier<VariableNullability> variableNullabilitySupplier, VariableGenerator variableGenerator, RequiredExtensionalDataNodeExtractor requiredDataNodeExtractor, RightProvenanceNormalizer rightProvenanceNormalizer, OptimizationSingletons optimizationSingletons)
public IQTree transformLeftJoin(IQTree tree, LeftJoinNode rootNode, IQTree leftChild, IQTree rightChild)
transformLeftJoin in interface IQTreeVisitingTransformertransformLeftJoin in class DefaultNonRecursiveIQTreeTransformerprotected Optional<IQTree> furtherTransformLeftJoin(LeftJoinNode rootNode, IQTree leftChild, IQTree rightChild)
protected it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<AbstractJoinTransferLJTransformer.SelectedNode> selectRightDataNodesToTransfer(it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<ExtensionalDataNode> leftDataNodes, it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<ExtensionalDataNode> rightDataNodes)
protected abstract Optional<AbstractJoinTransferLJTransformer.SelectedNode> selectForTransfer(ExtensionalDataNode rightDataNode, it.unibz.inf.ontop.com.google.common.collect.ImmutableMultimap<RelationDefinition,ExtensionalDataNode> leftMultimap)
protected VariableNullability getInheritedVariableNullability()
protected Optional<it.unibz.inf.ontop.com.google.common.collect.ImmutableList<Integer>> matchUniqueConstraint(UniqueConstraint uniqueConstraint, it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<ExtensionalDataNode> sameRelationLeftNodes, it.unibz.inf.ontop.com.google.common.collect.ImmutableMap<Integer,? extends VariableOrGroundTerm> rightArgumentMap)
protected Optional<it.unibz.inf.ontop.com.google.common.collect.ImmutableList<Integer>> matchForeignKey(ForeignKeyConstraint fk, it.unibz.inf.ontop.com.google.common.collect.ImmutableCollection<ExtensionalDataNode> leftNodes, it.unibz.inf.ontop.com.google.common.collect.ImmutableMap<Integer,? extends VariableOrGroundTerm> rightArgumentMap)
protected Optional<it.unibz.inf.ontop.com.google.common.collect.ImmutableList<Integer>> matchFunctionalDependency(FunctionalDependency functionalDependency, it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<ExtensionalDataNode> sameRelationLeftNodes, it.unibz.inf.ontop.com.google.common.collect.ImmutableMap<Integer,? extends VariableOrGroundTerm> rightArgumentMap)
protected Optional<it.unibz.inf.ontop.com.google.common.collect.ImmutableList<Integer>> matchIndexes(it.unibz.inf.ontop.com.google.common.collect.ImmutableSet<ExtensionalDataNode> sameRelationLeftNodes, it.unibz.inf.ontop.com.google.common.collect.ImmutableMap<Integer,? extends VariableOrGroundTerm> rightArgumentMap, it.unibz.inf.ontop.com.google.common.collect.ImmutableList<Integer> indexes)
protected Stream<ExtensionalDataNode> extractRightDataNodes(IQTree rightChild)
public IQTree transformFilter(IQTree tree, FilterNode rootNode, IQTree child)
transformFilter in interface IQTreeVisitingTransformertransformFilter in class DefaultNonRecursiveIQTreeTransformerpublic IQTree transformDistinct(IQTree tree, DistinctNode rootNode, IQTree child)
transformDistinct in interface IQTreeVisitingTransformertransformDistinct in class DefaultNonRecursiveIQTreeTransformerpublic IQTree transformSlice(IQTree tree, SliceNode sliceNode, IQTree child)
transformSlice in interface IQTreeVisitingTransformertransformSlice in class DefaultNonRecursiveIQTreeTransformerpublic IQTree transformOrderBy(IQTree tree, OrderByNode rootNode, IQTree child)
transformOrderBy in interface IQTreeVisitingTransformertransformOrderBy in class DefaultNonRecursiveIQTreeTransformerpublic IQTree transformInnerJoin(IQTree tree, InnerJoinNode rootNode, it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children)
transformInnerJoin in interface IQTreeVisitingTransformertransformInnerJoin in class DefaultNonRecursiveIQTreeTransformerprotected IQTree transformUnaryNode(IQTree tree, UnaryOperatorNode rootNode, IQTree child)
transformUnaryNode in class DefaultNonRecursiveIQTreeTransformerprotected IQTree transformUnaryNode(IQTree tree, UnaryOperatorNode rootNode, IQTree child, Function<IQTree,IQTree> childTransformation)
protected IQTree transformNaryCommutativeNode(IQTree tree, NaryOperatorNode rootNode, it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children)
transformNaryCommutativeNode in class DefaultNonRecursiveIQTreeTransformerprotected IQTree transformNaryCommutativeNode(IQTree tree, NaryOperatorNode rootNode, it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children, Function<IQTree,IQTree> childTransformation)
protected IQTree transformBinaryNonCommutativeNode(IQTree tree, BinaryNonCommutativeOperatorNode rootNode, IQTree leftChild, IQTree rightChild)
transformBinaryNonCommutativeNode in class DefaultNonRecursiveIQTreeTransformerprotected IQTree transformBinaryNonCommutativeNode(IQTree tree, BinaryNonCommutativeOperatorNode rootNode, IQTree leftChild, IQTree rightChild, Function<IQTree,IQTree> childTransformation)
protected abstract IQTree transformBySearchingFromScratch(IQTree tree)
Copyright © 2009–2021 Free University of Bozen-Bolzano. All rights reserved.