Package org.eclipse.rdf4j.query.algebra
Class ArbitraryLengthPath
- java.lang.Object
-
- org.eclipse.rdf4j.query.algebra.AbstractQueryModelNode
-
- org.eclipse.rdf4j.query.algebra.ArbitraryLengthPath
-
- All Implemented Interfaces:
Serializable
,Cloneable
,GraphPatternGroupable
,QueryModelNode
,TupleExpr
,VariableScopeChange
- Direct Known Subclasses:
ExclusiveArbitraryLengthPath
public class ArbitraryLengthPath extends AbstractQueryModelNode implements TupleExpr
A tuple expression that matches a path of arbitrary length against an RDF graph. They can can be targeted at one of three context scopes: all contexts, null context only, or named contexts only.- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description ArbitraryLengthPath()
ArbitraryLengthPath(StatementPattern.Scope scope, Var subject, TupleExpr pathExpression, Var object, long minLength)
Creates a arbitrary-length path that matches a subject-, predicate- and object variable against statements from the specified context scope.ArbitraryLengthPath(StatementPattern.Scope scope, Var subjVar, TupleExpr pathExpression, Var objVar, Var conVar, long minLength)
Creates a arbitrary-length path that matches a subject-, predicate-, object- and context variable against statements from the specified context scope.ArbitraryLengthPath(Var subject, TupleExpr pathExpression, Var object, long minLength)
Creates a arbitrary-length path that matches a subject-, predicate- and object variable against statements from all contexts.ArbitraryLengthPath(Var subject, TupleExpr pathExpression, Var object, Var context, long minLength)
Creates a arbitrary-length path that matches a subject-, predicate-, object- and context variable against statements from all contexts.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ArbitraryLengthPath
clone()
Returns a (deep) clone of this query model node.boolean
equals(Object other)
Returns true if this query model node and its children are recursively equal to o and its children.Set<String>
getAssuredBindingNames()
Gets the names of the bindings that are guaranteed to be present in the results produced by this tuple expression.Set<String>
getBindingNames()
Gets the names of the bindings that are, or can be, returned by this tuple expression when it is evaluated.Var
getContextVar()
Returns the context variable, if available.long
getMinLength()
Var
getObjectVar()
TupleExpr
getPathExpression()
StatementPattern.Scope
getScope()
Gets the context scope for the arbitrary-length path.String
getSignature()
Default implementation ofQueryModelNode.getSignature()
that prints the name of the node's class.Var
getSubjectVar()
int
hashCode()
void
replaceChildNode(QueryModelNode current, QueryModelNode replacement)
Default implementation ofQueryModelNode.replaceChildNode(QueryModelNode, QueryModelNode)
that throws anIllegalArgumentException
indicating that current is not a child node of this node.void
setContextVar(Var context)
void
setMinLength(long minLength)
void
setObjectVar(Var object)
void
setPathExpression(TupleExpr pathExpression)
void
setScope(StatementPattern.Scope scope)
Sets the context scope for the arbitrary-length pathvoid
setSubjectVar(Var subject)
<X extends Exception>
voidvisit(QueryModelVisitor<X> visitor)
Visits this node.<X extends Exception>
voidvisitChildren(QueryModelVisitor<X> visitor)
Dummy implementation ofQueryModelNode.visitChildren(org.eclipse.rdf4j.query.algebra.QueryModelVisitor<X>)
that does nothing.-
Methods inherited from class org.eclipse.rdf4j.query.algebra.AbstractQueryModelNode
getCardinality, getCostEstimate, getParentNode, getResultSizeActual, getResultSizeEstimate, getTotalTimeNanosActual, isCardinalitySet, isGraphPatternGroup, isVariableScopeChange, nullEquals, replaceNodeInList, replaceWith, resetCardinality, setCardinality, setCostEstimate, setGraphPatternGroup, setParentNode, setResultSizeActual, setResultSizeEstimate, setTotalTimeNanosActual, setVariableScopeChange, shouldCacheCardinality, toString
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.rdf4j.query.algebra.QueryModelNode
getCostEstimate, getParentNode, getResultSizeActual, getResultSizeEstimate, getTotalTimeNanosActual, replaceWith, setCostEstimate, setParentNode, setResultSizeActual, setResultSizeEstimate, setTotalTimeNanosActual, toString
-
-
-
-
Constructor Detail
-
ArbitraryLengthPath
public ArbitraryLengthPath()
-
ArbitraryLengthPath
public ArbitraryLengthPath(Var subject, TupleExpr pathExpression, Var object, long minLength)
Creates a arbitrary-length path that matches a subject-, predicate- and object variable against statements from all contexts.
-
ArbitraryLengthPath
public ArbitraryLengthPath(StatementPattern.Scope scope, Var subject, TupleExpr pathExpression, Var object, long minLength)
Creates a arbitrary-length path that matches a subject-, predicate- and object variable against statements from the specified context scope.
-
ArbitraryLengthPath
public ArbitraryLengthPath(Var subject, TupleExpr pathExpression, Var object, Var context, long minLength)
Creates a arbitrary-length path that matches a subject-, predicate-, object- and context variable against statements from all contexts.
-
ArbitraryLengthPath
public ArbitraryLengthPath(StatementPattern.Scope scope, Var subjVar, TupleExpr pathExpression, Var objVar, Var conVar, long minLength)
Creates a arbitrary-length path that matches a subject-, predicate-, object- and context variable against statements from the specified context scope.
-
-
Method Detail
-
getScope
public StatementPattern.Scope getScope()
Gets the context scope for the arbitrary-length path.
-
setScope
public void setScope(StatementPattern.Scope scope)
Sets the context scope for the arbitrary-length path
-
getSubjectVar
public Var getSubjectVar()
-
setSubjectVar
public void setSubjectVar(Var subject)
-
getPathExpression
public TupleExpr getPathExpression()
-
setPathExpression
public void setPathExpression(TupleExpr pathExpression)
-
getObjectVar
public Var getObjectVar()
-
setObjectVar
public void setObjectVar(Var object)
-
setMinLength
public void setMinLength(long minLength)
-
getMinLength
public long getMinLength()
-
getContextVar
public Var getContextVar()
Returns the context variable, if available.
-
setContextVar
public void setContextVar(Var context)
-
getBindingNames
public Set<String> getBindingNames()
Description copied from interface:TupleExpr
Gets the names of the bindings that are, or can be, returned by this tuple expression when it is evaluated.- Specified by:
getBindingNames
in interfaceTupleExpr
- Returns:
- A set of binding names.
-
getAssuredBindingNames
public Set<String> getAssuredBindingNames()
Description copied from interface:TupleExpr
Gets the names of the bindings that are guaranteed to be present in the results produced by this tuple expression.- Specified by:
getAssuredBindingNames
in interfaceTupleExpr
- Returns:
- A set of binding names.
-
visit
public <X extends Exception> void visit(QueryModelVisitor<X> visitor) throws X extends Exception
Description copied from interface:QueryModelNode
Visits this node. The node reports itself to the visitor with the proper runtime type.- Specified by:
visit
in interfaceQueryModelNode
- Throws:
X extends Exception
-
visitChildren
public <X extends Exception> void visitChildren(QueryModelVisitor<X> visitor) throws X extends Exception
Description copied from class:AbstractQueryModelNode
Dummy implementation ofQueryModelNode.visitChildren(org.eclipse.rdf4j.query.algebra.QueryModelVisitor<X>)
that does nothing. Subclasses should override this method when they have child nodes.- Specified by:
visitChildren
in interfaceQueryModelNode
- Overrides:
visitChildren
in classAbstractQueryModelNode
- Throws:
X extends Exception
-
replaceChildNode
public void replaceChildNode(QueryModelNode current, QueryModelNode replacement)
Description copied from class:AbstractQueryModelNode
Default implementation ofQueryModelNode.replaceChildNode(QueryModelNode, QueryModelNode)
that throws anIllegalArgumentException
indicating that current is not a child node of this node.- Specified by:
replaceChildNode
in interfaceQueryModelNode
- Overrides:
replaceChildNode
in classAbstractQueryModelNode
- Parameters:
current
- The current child node.replacement
- The new child node.
-
getSignature
public String getSignature()
Description copied from class:AbstractQueryModelNode
Default implementation ofQueryModelNode.getSignature()
that prints the name of the node's class.- Specified by:
getSignature
in interfaceQueryModelNode
- Overrides:
getSignature
in classAbstractQueryModelNode
- Returns:
- The node's signature, e.g. SLICE (offset=10, limit=10).
-
equals
public boolean equals(Object other)
Description copied from interface:QueryModelNode
Returns true if this query model node and its children are recursively equal to o and its children.- Specified by:
equals
in interfaceQueryModelNode
- Overrides:
equals
in classObject
-
clone
public ArbitraryLengthPath clone()
Description copied from interface:QueryModelNode
Returns a (deep) clone of this query model node. This method recursively clones the entire node tree, starting from this nodes.- Specified by:
clone
in interfaceQueryModelNode
- Specified by:
clone
in interfaceTupleExpr
- Overrides:
clone
in classAbstractQueryModelNode
- Returns:
- A deep clone of this query model node.
-
-