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, setParentgetQueryHints, toStringaddExplainHint, getExplainHints, getQueryHint, getQueryHint, getQueryHintAsBoolean, getQueryHintAsBoolean, getQueryHintAsInteger, replaceAllWith, setQueryHint, setQueryHintsaddArg, addArg, addArgIfAbsent, annotations, annotationsEqual, argIterator, args, arity, clearProperty, copyAll, get, getProperty, indexOf, removeArg, replaceWith, setArg, setArgs, setId, setProperty, setUnboundProperty, toArray, toArrayannotationsEqual, annotationsToString, annotationsToString, annotationValueToString, checkArgs, clone, equals, getEvaluationContext, getId, getProperty, getRequiredProperty, hashCode, indent, isController, mutation, shortenName, toShortStringfinalize, getClass, notify, notifyAll, wait, wait, waitgetContext, getParent, getParentGraphPatternGroup, getParentJoinGroup, setParentannotations, argIterator, args, arity, clone, get, getEvaluationContext, getId, getProperty, getRequiredProperty, isController, setProperty, toArray, toArray, toShortString, toStringgetPropertypublic 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)
CoreBaseBOpCoreBaseBOp.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 BOptoString in interface IQueryNodetoString in class CoreBaseBOppublic boolean isReorderable()
IReorderableNodeisReorderable in interface IReorderableNodepublic long getEstimatedCardinality(StaticOptimizer opt)
IReorderableNodegetEstimatedCardinality in interface IReorderableNodeopt - This optimizer can be used to help work out the estimatepublic Set<IVariable<?>> getRequiredBound(StaticAnalysis sa)
IVariableBindingRequirementsIVariableBindingRequirements#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 IVariableBindingRequirementspublic Set<IVariable<?>> getDesiredBound(StaticAnalysis sa)
IVariableBindingRequirementsIVariableBindingRequirements.getRequiredBound(StaticAnalysis).getDesiredBound in interface IVariableBindingRequirementsCopyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.