public class ArbitraryLengthPathNode extends GroupMemberNodeBase<ArbitraryLengthPathNode> implements IBindingProducerNode, IReorderableNode
Modifier and Type | Class and Description |
---|---|
static interface |
ArbitraryLengthPathNode.Annotations |
DEFAULT_INITIAL_CAPACITY
Constructor and Description |
---|
ArbitraryLengthPathNode(ArbitraryLengthPathNode op)
Constructor required for
com.bigdata.bop.BOpUtility#deepCopy(FilterNode) . |
ArbitraryLengthPathNode(BOp[] args,
Map<String,Object> anns)
Required shallow copy constructor.
|
ArbitraryLengthPathNode(TermNode left,
TermNode right,
VarNode tVarLeft,
VarNode tVarRight,
long lowerBound,
long upperBound)
Fully construct an arbitrary length path node with all required
annotations.
|
ArbitraryLengthPathNode(TermNode left,
TermNode right,
VarNode tVarLeft,
VarNode tVarRight,
PathNode.PathMod mod)
Fully construct an arbitrary length path node with all required
annotations.
|
Modifier and Type | Method and Description |
---|---|
void |
addDropVar(VarNode dropVar)
Add a var that should be dropped after each round.
|
Set<VarNode> |
dropVars()
Get the vars that should be dropped after each round.
|
VarNode |
edgeVar()
Return the (optional) edge var.
|
Set<IVariable<?>> |
getDefinitelyProducedBindings()
Return the variables bound by the path - i.e.
|
Set<IVariable<?>> |
getDesiredBound(StaticAnalysis sa)
Get variables that are not required to be bound, but desired in the
sense that we want them to be bound when evaluating the construct.
|
long |
getEstimatedCardinality(StaticOptimizer opt)
Return the estimated cardinality - either the range count of a
statement pattern or some computed estimated cardinality for a join
group.
|
Set<IVariable<?>> |
getMaybeProducedBindings()
Return the variables bound by the path - i.e.
|
Set<IVariable<?>> |
getRequiredBound(StaticAnalysis sa)
Return the variables used in the node that *must* be bound prior to
evaluating the node.
|
Set<IVariable<?>> |
getUsedVars()
Return the set of variables used by this ALP node (statement pattern
terms and inside filters).
|
boolean |
isReorderable()
The decision about whether to re-order can no longer be made simply
by examining the type - individual instances of a particular type
may or may not be reorderable.
|
TermNode |
left()
Returns the left term.
|
long |
lowerBound()
Return the lower bound.
|
TermNode |
middle()
Returns the (optional) middle term.
|
TermNode |
right()
Returns the right term.
|
void |
setDropVars(Set<VarNode> dropVars)
Set the vars that should be dropped after each round.
|
void |
setEdgeVar(VarNode edgeVar,
TermNode middle)
Set the edge var and middle term.
|
JoinGroupNode |
subgroup()
Return the subgroup.
|
String |
toString(int indent)
The contract of this method at this level is under-specified.
|
VarNode |
tVarLeft()
Return the left transitivity var.
|
VarNode |
tVarRight()
Return the right transitivity var.
|
long |
upperBound()
Return the upper bound.
|
getContext, getParent, getParentGraphPatternGroup, getParentJoinGroup, setParent
getQueryHints, toString
addExplainHint, getExplainHints, getQueryHint, getQueryHint, getQueryHintAsBoolean, getQueryHintAsBoolean, getQueryHintAsInteger, replaceAllWith, setQueryHint, setQueryHints
addArg, addArg, addArgIfAbsent, annotations, annotationsEqual, argIterator, args, arity, clearProperty, copyAll, get, getProperty, indexOf, removeArg, replaceWith, setArg, setArgs, setId, setProperty, setUnboundProperty, toArray, toArray
annotationsEqual, annotationsToString, annotationsToString, annotationValueToString, checkArgs, clone, equals, getEvaluationContext, getId, getProperty, getRequiredProperty, hashCode, indent, isController, mutation, shortenName, toShortString
finalize, getClass, notify, notifyAll, wait, wait, wait
getContext, getParent, getParentGraphPatternGroup, getParentJoinGroup, setParent
annotations, argIterator, args, arity, clone, get, getEvaluationContext, getId, getProperty, getRequiredProperty, isController, setProperty, toArray, toArray, toShortString, toString
getProperty
public ArbitraryLengthPathNode(ArbitraryLengthPathNode op)
com.bigdata.bop.BOpUtility#deepCopy(FilterNode)
.public ArbitraryLengthPathNode(BOp[] args, Map<String,Object> anns)
public ArbitraryLengthPathNode(TermNode left, TermNode right, VarNode tVarLeft, VarNode tVarRight, PathNode.PathMod mod)
public TermNode left()
public TermNode right()
public VarNode tVarLeft()
public VarNode tVarRight()
public long lowerBound()
public long upperBound()
public TermNode middle()
public VarNode edgeVar()
public void setEdgeVar(VarNode edgeVar, TermNode middle)
public void setDropVars(Set<VarNode> dropVars)
public void addDropVar(VarNode dropVar)
public JoinGroupNode subgroup()
public Set<IVariable<?>> getMaybeProducedBindings()
public Set<IVariable<?>> getDefinitelyProducedBindings()
public Set<IVariable<?>> getUsedVars()
public String toString(int indent)
CoreBaseBOp
CoreBaseBOp.toString()
Or:
- return a pretty-print representation of the object with indent
Note that the former contract may or may not include recursive descent through a tree-like
object, whereas the latter almost certainly does.toString
in interface BOp
toString
in interface IQueryNode
toString
in class CoreBaseBOp
public boolean isReorderable()
IReorderableNode
isReorderable
in interface IReorderableNode
public long getEstimatedCardinality(StaticOptimizer opt)
IReorderableNode
getEstimatedCardinality
in interface IReorderableNode
opt
- This optimizer can be used to help work out the estimatepublic Set<IVariable<?>> getRequiredBound(StaticAnalysis sa)
IVariableBindingRequirements
IVariableBindingRequirements#getRequiredBound()
interface cannot be satisified, the query may still be valid and return
results (for the SPARQL 1.1 service example mentioned above, it may not,
for the FILTER it may).
The set of these variables must be disjoint from
IVariableBindingRequirements#getRequiredUnound()
.getRequiredBound
in interface IVariableBindingRequirements
public Set<IVariable<?>> getDesiredBound(StaticAnalysis sa)
IVariableBindingRequirements
IVariableBindingRequirements.getRequiredBound(StaticAnalysis)
.getDesiredBound
in interface IVariableBindingRequirements
Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.