Package org.eclipse.rdf4j.query.algebra
Class Service
java.lang.Object
org.eclipse.rdf4j.query.algebra.AbstractQueryModelNode
org.eclipse.rdf4j.query.algebra.UnaryTupleOperator
org.eclipse.rdf4j.query.algebra.Service
- All Implemented Interfaces:
Serializable
,Cloneable
,GraphPatternGroupable
,QueryModelNode
,TupleExpr
,VariableScopeChange
The SERVICE keyword as defined in SERVICE
definition. The service expression is evaluated at the specified service URI. If the service reference is a
variable, a value for this variable must be available at evaluation time (e.g. from earlier computations).
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate String
private String
private String
private String
private Var
private final boolean
private static final Pattern
Fields inherited from class org.eclipse.rdf4j.query.algebra.UnaryTupleOperator
arg
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionclone()
Returns a (deep) clone of this query model node.private String
computePrefixString
(Map<String, String> prefixDeclarations) Compute the prefix string only once to avoid computation overhead during evaluation.computeServiceVars
(TupleExpr serviceExpression) Compute the variable names occurring in the service expression using tree traversal, since these are necessary for building the SPARQL query.boolean
Returns true if this query model node and its children are recursively equal to o and its children.Returns an ASK query string using no projection vars.getSelectQueryString
(Set<String> projectionVars) Returns a SELECT query string using the provided projection vars.int
hashCode()
private void
boolean
isSilent()
private String
parseServiceExpression
(String serviceExpression) Parses a service expression to just have the inner expression, e.g.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
setBaseURI
(String baseURI) void
setExpressionString
(String serviceExpressionString) The SERVICE expression, either complete or just the expression e.g.void
setPrefixDeclarations
(Map<String, String> prefixDeclarations) void
setServiceRef
(Var serviceRef) <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.UnaryTupleOperator
getArg, getAssuredBindingNames, getBindingNames, setArg
Methods inherited from class org.eclipse.rdf4j.query.algebra.AbstractQueryModelNode
getCardinality, getCostEstimate, getParentNode, getResultSizeActual, getResultSizeEstimate, getSignature, getTotalTimeNanosActual, isCardinalitySet, isGraphPatternGroup, isVariableScopeChange, nullEquals, replaceNodeInList, replaceWith, resetCardinality, setCardinality, setCostEstimate, setGraphPatternGroup, setParentNode, setResultSizeActual, setResultSizeEstimate, setTotalTimeNanosActual, setVariableScopeChange, shouldCacheCardinality, 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, getSignature, getTotalTimeNanosActual, replaceWith, setCostEstimate, setParentNode, setResultSizeActual, setResultSizeEstimate, setTotalTimeNanosActual, toString
-
Field Details
-
serviceRef
-
serviceExpressionString
-
serviceVars
-
prefixDeclarations
-
baseURI
-
preparedSelectQueryString
-
preparedAskQueryString
-
silent
private final boolean silent -
subselectPattern
-
-
Constructor Details
-
Service
-
-
Method Details
-
getServiceRef
-
getServiceExpr
-
setServiceRef
-
isSilent
public boolean isSilent()- Returns:
- Returns the silent.
-
getPrefixDeclarations
- Returns:
- Returns the prefixDeclarations.
-
setPrefixDeclarations
- Parameters:
prefixDeclarations
- The prefixDeclarations to set.
-
setExpressionString
The SERVICE expression, either complete or just the expression e.g. "SERVICE{ ... }" becomes " ... " - Parameters:
serviceExpressionString
- the inner expression as SPARQL String representation
-
getServiceExpressionString
- Returns:
- Returns the serviceExpressionString.
-
getAskQueryString
Returns an ASK query string using no projection vars.- Returns:
- an ASK query string
-
getSelectQueryString
Returns a SELECT query string using the provided projection vars. The variables are inserted into the preparedSelectQueryString in the SELECT clause.- Parameters:
projectionVars
-- Returns:
- SELECT query string, utilizing the given projection variables
-
getServiceVars
- Returns:
- Returns the serviceVars.
-
visit
Description copied from interface:QueryModelNode
Visits this node. The node reports itself to the visitor with the proper runtime type.- Throws:
X
-
visitChildren
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 classUnaryTupleOperator
- Throws:
X
-
replaceChildNode
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 classUnaryTupleOperator
- Parameters:
current
- The current child node.replacement
- The new child node.
-
equals
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 classUnaryTupleOperator
-
hashCode
public int hashCode()- Overrides:
hashCode
in classUnaryTupleOperator
-
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 classUnaryTupleOperator
- Returns:
- A deep clone of this query model node.
-
computeServiceVars
Compute the variable names occurring in the service expression using tree traversal, since these are necessary for building the SPARQL query.- Returns:
- the set of variable names in the given service expression
-
initPreparedQueryString
private void initPreparedQueryString() -
computePrefixString
Compute the prefix string only once to avoid computation overhead during evaluation.- Parameters:
prefixDeclarations
-- Returns:
- a Prefix String or an empty string if there are no prefixes
-
parseServiceExpression
Parses a service expression to just have the inner expression, e.g. from something like "SERVICE <url> { ... }" becomes " ... ", also appliesString.trim()
to remove leading/tailing space- Parameters:
serviceExpression
-- Returns:
- the inner expression of the given service expression
-
setBaseURI
- Parameters:
baseURI
- The baseURI to set.
-
getBaseURI
- Returns:
- Returns the baseURI.
-