org.openrdf.query.algebra
Class ArbitraryLengthPath

java.lang.Object
  extended by org.openrdf.query.algebra.QueryModelNodeBase
      extended by org.openrdf.query.algebra.ArbitraryLengthPath
All Implemented Interfaces:
Cloneable, QueryModelNode, TupleExpr

public class ArbitraryLengthPath
extends QueryModelNodeBase
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.


Constructor Summary
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
 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 of QueryModelNode.getSignature() that prints the name of the node's class.
 Var getSubjectVar()
           
 int hashCode()
           
 void replaceChildNode(QueryModelNode current, QueryModelNode replacement)
          Default implementation of QueryModelNode.replaceChildNode(QueryModelNode, QueryModelNode) that throws an IllegalArgumentException 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 path
 void setSubjectVar(Var subject)
           
<X extends Exception>
void
visit(QueryModelVisitor<X> visitor)
          Visits this node.
<X extends Exception>
void
visitChildren(QueryModelVisitor<X> visitor)
          Dummy implementation of QueryModelNode.visitChildren(org.openrdf.query.algebra.QueryModelVisitor) that does nothing.
 
Methods inherited from class org.openrdf.query.algebra.QueryModelNodeBase
getParentNode, nullEquals, replaceNodeInList, replaceWith, setParentNode, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.openrdf.query.algebra.QueryModelNode
getParentNode, replaceWith, setParentNode, 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 interface TupleExpr
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 interface TupleExpr
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 interface QueryModelNode
Throws:
X extends Exception

visitChildren

public <X extends Exception> void visitChildren(QueryModelVisitor<X> visitor)
                   throws X extends Exception
Description copied from class: QueryModelNodeBase
Dummy implementation of QueryModelNode.visitChildren(org.openrdf.query.algebra.QueryModelVisitor) that does nothing. Subclasses should override this method when they have child nodes.

Specified by:
visitChildren in interface QueryModelNode
Overrides:
visitChildren in class QueryModelNodeBase
Throws:
X extends Exception

replaceChildNode

public void replaceChildNode(QueryModelNode current,
                             QueryModelNode replacement)
Description copied from class: QueryModelNodeBase
Default implementation of QueryModelNode.replaceChildNode(QueryModelNode, QueryModelNode) that throws an IllegalArgumentException indicating that current is not a child node of this node.

Specified by:
replaceChildNode in interface QueryModelNode
Overrides:
replaceChildNode in class QueryModelNodeBase
Parameters:
current - The current child node.
replacement - The new child node.

getSignature

public String getSignature()
Description copied from class: QueryModelNodeBase
Default implementation of QueryModelNode.getSignature() that prints the name of the node's class.

Specified by:
getSignature in interface QueryModelNode
Overrides:
getSignature in class QueryModelNodeBase
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 interface QueryModelNode
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

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 interface QueryModelNode
Specified by:
clone in interface TupleExpr
Overrides:
clone in class QueryModelNodeBase
Returns:
A deep clone of this query model node.


Copyright © 2001-2012 Aduna. All Rights Reserved.