Class AbstractBelowDistinctTransformer
- java.lang.Object
-
- it.unibz.inf.ontop.iq.transform.impl.DefaultNonRecursiveIQTreeTransformer
-
- it.unibz.inf.ontop.iq.optimizer.impl.AbstractBelowDistinctTransformer
-
- All Implemented Interfaces:
IQTreeTransformer,IQTreeVisitingTransformer
- Direct Known Subclasses:
SelfJoinSameTermIQOptimizerImpl.SameTermSelfJoinTransformer
public abstract class AbstractBelowDistinctTransformer extends DefaultNonRecursiveIQTreeTransformer
Transformer where the cardinality does matter for the current tree
-
-
Field Summary
Fields Modifier and Type Field Description protected CoreSingletonscoreSingletons
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractBelowDistinctTransformer(IQTreeTransformer lookForDistinctTransformer, CoreSingletons coreSingletons)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract Optional<IQTree>furtherSimplifyInnerJoinChildren(Optional<ImmutableExpression> optionalFilterCondition, it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children)Takes in account the interaction between children Returns empty() if no further optimization has been appliedprotected IQTreetransformBinaryNonCommutativeNode(IQTree tree, BinaryNonCommutativeOperatorNode rootNode, IQTree leftChild, IQTree rightChild)By default, switch back to the "LookForDistinctTransformer"IQTreetransformConstruction(IQTree tree, ConstructionNode rootNode, IQTree child)IQTreetransformFilter(IQTree tree, FilterNode rootNode, IQTree child)IQTreetransformInnerJoin(IQTree tree, InnerJoinNode rootNode, it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children)IQTreetransformLeftJoin(IQTree tree, LeftJoinNode rootNode, IQTree leftChild, IQTree rightChild)protected IQTreetransformNaryCommutativeNode(IQTree tree, NaryOperatorNode rootNode, it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children)By default, switch back to the "LookForDistinctTransformer"IQTreetransformOrderBy(IQTree tree, OrderByNode rootNode, IQTree child)IQTreetransformSlice(IQTree tree, SliceNode sliceNode, IQTree child)protected IQTreetransformUnaryNode(IQTree tree, UnaryOperatorNode rootNode, IQTree child)By default, switch back to the "LookForDistinctTransformer"IQTreetransformUnion(IQTree tree, UnionNode rootNode, it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children)-
Methods inherited from class it.unibz.inf.ontop.iq.transform.impl.DefaultNonRecursiveIQTreeTransformer
transformAggregation, transformDistinct, transformEmpty, transformExtensionalData, transformIntensionalData, transformLeaf, transformNonStandardBinaryNonCommutativeNode, transformNonStandardLeafNode, transformNonStandardNaryNode, transformNonStandardUnaryNode, transformTrue, transformValues
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface it.unibz.inf.ontop.iq.transform.IQTreeVisitingTransformer
transform
-
-
-
-
Field Detail
-
coreSingletons
protected final CoreSingletons coreSingletons
-
-
Constructor Detail
-
AbstractBelowDistinctTransformer
protected AbstractBelowDistinctTransformer(IQTreeTransformer lookForDistinctTransformer, CoreSingletons coreSingletons)
-
-
Method Detail
-
transformInnerJoin
public IQTree transformInnerJoin(IQTree tree, InnerJoinNode rootNode, it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children)
- Specified by:
transformInnerJoinin interfaceIQTreeVisitingTransformer- Overrides:
transformInnerJoinin classDefaultNonRecursiveIQTreeTransformer
-
furtherSimplifyInnerJoinChildren
protected abstract Optional<IQTree> furtherSimplifyInnerJoinChildren(Optional<ImmutableExpression> optionalFilterCondition, it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children)
Takes in account the interaction between children Returns empty() if no further optimization has been applied
-
transformConstruction
public IQTree transformConstruction(IQTree tree, ConstructionNode rootNode, IQTree child)
- Specified by:
transformConstructionin interfaceIQTreeVisitingTransformer- Overrides:
transformConstructionin classDefaultNonRecursiveIQTreeTransformer
-
transformSlice
public IQTree transformSlice(IQTree tree, SliceNode sliceNode, IQTree child)
- Specified by:
transformSlicein interfaceIQTreeVisitingTransformer- Overrides:
transformSlicein classDefaultNonRecursiveIQTreeTransformer
-
transformOrderBy
public IQTree transformOrderBy(IQTree tree, OrderByNode rootNode, IQTree child)
- Specified by:
transformOrderByin interfaceIQTreeVisitingTransformer- Overrides:
transformOrderByin classDefaultNonRecursiveIQTreeTransformer
-
transformFilter
public IQTree transformFilter(IQTree tree, FilterNode rootNode, IQTree child)
- Specified by:
transformFilterin interfaceIQTreeVisitingTransformer- Overrides:
transformFilterin classDefaultNonRecursiveIQTreeTransformer
-
transformUnion
public IQTree transformUnion(IQTree tree, UnionNode rootNode, it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children)
- Specified by:
transformUnionin interfaceIQTreeVisitingTransformer- Overrides:
transformUnionin classDefaultNonRecursiveIQTreeTransformer
-
transformLeftJoin
public IQTree transformLeftJoin(IQTree tree, LeftJoinNode rootNode, IQTree leftChild, IQTree rightChild)
- Specified by:
transformLeftJoinin interfaceIQTreeVisitingTransformer- Overrides:
transformLeftJoinin classDefaultNonRecursiveIQTreeTransformer
-
transformUnaryNode
protected IQTree transformUnaryNode(IQTree tree, UnaryOperatorNode rootNode, IQTree child)
By default, switch back to the "LookForDistinctTransformer"- Overrides:
transformUnaryNodein classDefaultNonRecursiveIQTreeTransformer
-
transformNaryCommutativeNode
protected IQTree transformNaryCommutativeNode(IQTree tree, NaryOperatorNode rootNode, it.unibz.inf.ontop.com.google.common.collect.ImmutableList<IQTree> children)
By default, switch back to the "LookForDistinctTransformer"- Overrides:
transformNaryCommutativeNodein classDefaultNonRecursiveIQTreeTransformer
-
transformBinaryNonCommutativeNode
protected IQTree transformBinaryNonCommutativeNode(IQTree tree, BinaryNonCommutativeOperatorNode rootNode, IQTree leftChild, IQTree rightChild)
By default, switch back to the "LookForDistinctTransformer"- Overrides:
transformBinaryNonCommutativeNodein classDefaultNonRecursiveIQTreeTransformer
-
-