Package org.eclipse.rdf4j.query.algebra
Class StatementPattern
- java.lang.Object
-
- org.eclipse.rdf4j.query.algebra.AbstractQueryModelNode
-
- org.eclipse.rdf4j.query.algebra.StatementPattern
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,GraphPatternGroupable
,QueryModelNode
,TupleExpr
,VariableScopeChange
public class StatementPattern extends AbstractQueryModelNode implements TupleExpr
A tuple expression that matches a statement pattern against an RDF graph. Statement patterns can be targeted at one of three context scopes: all contexts, null context only, or named contexts only.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
StatementPattern.Scope
Indicates the scope of the statement pattern.private static class
StatementPattern.SmallStringSet
-
Field Summary
Fields Modifier and Type Field Description private java.util.Set<java.lang.String>
assuredBindingNames
static double
CARDINALITY_NOT_SET
Deprecated.private Var
contextVar
private Var
objectVar
private Var
predicateVar
private StatementPattern.Scope
scope
private Var
subjectVar
private java.util.List<Var>
varList
-
Constructor Summary
Constructors Constructor Description StatementPattern()
Deprecated, for removal: This API element is subject to removal in a future version.StatementPattern(StatementPattern.Scope scope, Var subject, Var predicate, Var object)
Creates a statement pattern that matches a subject-, predicate- and object variable against statements from the specified context scope.StatementPattern(StatementPattern.Scope scope, Var subjVar, Var predVar, Var objVar, Var conVar)
Creates a statement pattern that matches a subject-, predicate-, object- and context variable against statements from the specified context scope.StatementPattern(Var subject, Var predicate, Var object)
Creates a statement pattern that matches a subject-, predicate- and object variable against statements from all contexts.StatementPattern(Var subject, Var predicate, Var object, Var context)
Creates a statement pattern that matches a subject-, predicate-, object- and context variable against statements from all contexts.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description StatementPattern
clone()
Returns a (deep) clone of this query model node.boolean
equals(java.lang.Object other)
Returns true if this query model node and its children are recursively equal to o and its children.java.util.Set<java.lang.String>
getAssuredBindingNames()
Gets the names of the bindings that are guaranteed to be present in the results produced by this tuple expression.java.util.Set<java.lang.String>
getBindingNames()
Gets the names of the bindings that are, or can be, returned by this tuple expression when it is evaluated.private java.util.Set<java.lang.String>
getBindingsInternal()
Var
getContextVar()
Returns the context variable, if available.Var
getObjectVar()
Var
getPredicateVar()
StatementPattern.Scope
getScope()
Gets the context scope for the statement pattern.java.lang.String
getSignature()
Default implementation ofQueryModelNode.getSignature()
that prints the name of the node's class.private int
getSize()
Var
getSubjectVar()
java.util.List<Var>
getVarList()
private java.util.List<Var>
getVarListInternal()
<L extends java.util.Collection<Var>>
LgetVars(L varCollection)
Adds the variables of this statement pattern to the supplied collection.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)
Deprecated, for removal: This API element is subject to removal in a future version.void
setObjectVar(Var object)
Deprecated, for removal: This API element is subject to removal in a future version.void
setPredicateVar(Var predicate)
Deprecated, for removal: This API element is subject to removal in a future version.void
setScope(StatementPattern.Scope scope)
Deprecated, for removal: This API element is subject to removal in a future version.void
setSubjectVar(Var subject)
Deprecated, for removal: This API element is subject to removal in a future version.protected boolean
shouldCacheCardinality()
<X extends java.lang.Exception>
voidvisit(QueryModelVisitor<X> visitor)
Visits this node.<X extends java.lang.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, toHumanReadbleNumber, 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
-
-
-
-
Field Detail
-
CARDINALITY_NOT_SET
@Deprecated public static final double CARDINALITY_NOT_SET
Deprecated.- See Also:
- Constant Field Values
-
scope
private StatementPattern.Scope scope
-
subjectVar
private Var subjectVar
-
predicateVar
private Var predicateVar
-
objectVar
private Var objectVar
-
contextVar
private Var contextVar
-
assuredBindingNames
private java.util.Set<java.lang.String> assuredBindingNames
-
varList
private java.util.List<Var> varList
-
-
Constructor Detail
-
StatementPattern
@Deprecated(since="4.0.0", forRemoval=true) public StatementPattern()
Deprecated, for removal: This API element is subject to removal in a future version.
-
StatementPattern
public StatementPattern(Var subject, Var predicate, Var object)
Creates a statement pattern that matches a subject-, predicate- and object variable against statements from all contexts.
-
StatementPattern
public StatementPattern(StatementPattern.Scope scope, Var subject, Var predicate, Var object)
Creates a statement pattern that matches a subject-, predicate- and object variable against statements from the specified context scope.
-
StatementPattern
public StatementPattern(Var subject, Var predicate, Var object, Var context)
Creates a statement pattern that matches a subject-, predicate-, object- and context variable against statements from all contexts.
-
StatementPattern
public StatementPattern(StatementPattern.Scope scope, Var subjVar, Var predVar, Var objVar, Var conVar)
Creates a statement pattern 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 statement pattern.
-
setScope
@Deprecated(since="4.0.0", forRemoval=true) public void setScope(StatementPattern.Scope scope)
Deprecated, for removal: This API element is subject to removal in a future version.Sets the context scope for the statement pattern.
-
getSubjectVar
public Var getSubjectVar()
-
setSubjectVar
@Deprecated(since="4.0.0", forRemoval=true) public void setSubjectVar(Var subject)
Deprecated, for removal: This API element is subject to removal in a future version.
-
getPredicateVar
public Var getPredicateVar()
-
setPredicateVar
@Deprecated(since="4.0.0", forRemoval=true) public void setPredicateVar(Var predicate)
Deprecated, for removal: This API element is subject to removal in a future version.
-
getObjectVar
public Var getObjectVar()
-
setObjectVar
@Deprecated(since="4.0.0", forRemoval=true) public void setObjectVar(Var object)
Deprecated, for removal: This API element is subject to removal in a future version.
-
getContextVar
public Var getContextVar()
Returns the context variable, if available.
-
setContextVar
@Deprecated(since="4.0.0", forRemoval=true) public void setContextVar(Var context)
Deprecated, for removal: This API element is subject to removal in a future version.
-
getBindingNames
public java.util.Set<java.lang.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 java.util.Set<java.lang.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.
-
getBindingsInternal
private java.util.Set<java.lang.String> getBindingsInternal()
-
getVarList
public java.util.List<Var> getVarList()
-
getVarListInternal
private java.util.List<Var> getVarListInternal()
-
getSize
private int getSize()
-
getVars
public <L extends java.util.Collection<Var>> L getVars(L varCollection)
Adds the variables of this statement pattern to the supplied collection.
-
visit
public <X extends java.lang.Exception> void visit(QueryModelVisitor<X> visitor) throws X extends java.lang.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 java.lang.Exception
-
visitChildren
public <X extends java.lang.Exception> void visitChildren(QueryModelVisitor<X> visitor) throws X extends java.lang.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 java.lang.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 java.lang.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(java.lang.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 classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
clone
public StatementPattern 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.
-
shouldCacheCardinality
protected boolean shouldCacheCardinality()
- Overrides:
shouldCacheCardinality
in classAbstractQueryModelNode
-
-