Package com.saxonica.xqj
Class SaxonXQPreparedExpression
java.lang.Object
com.saxonica.xqj.Closable
com.saxonica.xqj.SaxonXQDynamicContext
com.saxonica.xqj.SaxonXQPreparedExpression
- All Implemented Interfaces:
XQDynamicContext
,XQPreparedExpression
public class SaxonXQPreparedExpression
extends SaxonXQDynamicContext
implements XQPreparedExpression
Saxon implementation of the XQJ interface XQPreparedExpression. This represents a compiled XQuery
expression, together with the dynamic context for its evaluation. Note that this means the object
should not be used in more than one thread concurrently.
Note that an expression is scrollable or not depending on the scrollability property of the XQConnection that was used to compile this expression (at the time it was compiled). If the expression is scrollable then its results are delivered in an XQSequence that supports scrolling backwards as well as forwards.
For full Javadoc details, see the XQJ interface specification.
-
Field Summary
Fields inherited from class com.saxonica.xqj.SaxonXQDynamicContext
connection
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
SaxonXQPreparedExpression
(SaxonXQConnection connection, XQueryExpression expression, SaxonXQStaticContext sqc, DynamicQueryContext context) -
Method Summary
Modifier and TypeMethodDescriptionvoid
cancel()
Attempts to cancel the execution if both the XQuery engine and XQJ driver support aborting the execution of anXQPreparedExpression
.Executes the prepared query expression.protected boolean
externalVariableExists
(QName name) QName[]
Retrieves all the external variables defined in the prolog of the prepared expression.QName[]
Retrieves the names of all unbound external variables.protected SaxonXQConnection
protected SaxonXQDataFactory
protected DynamicQueryContext
protected SaxonXQStaticContext
Gets anXQStaticContext
representing the values for all expression properties.Gets the static type information of the result sequence.getStaticVariableType
(QName name) Retrieves the static type of a given external variable.protected XQueryExpression
Methods inherited from class com.saxonica.xqj.SaxonXQDynamicContext
bindAtomicValue, bindBoolean, bindByte, bindDocument, bindDocument, bindDocument, bindDocument, bindDocument, bindDouble, bindFloat, bindInt, bindItem, bindLong, bindNode, bindObject, bindSequence, bindShort, bindString, getConfiguration, getImplicitTimeZone, setImplicitTimeZone
Methods inherited from class com.saxonica.xqj.Closable
close, isClosed, setClosableContainer
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface javax.xml.xquery.XQDynamicContext
bindAtomicValue, bindBoolean, bindByte, bindDocument, bindDocument, bindDocument, bindDocument, bindDocument, bindDouble, bindFloat, bindInt, bindItem, bindLong, bindNode, bindObject, bindSequence, bindShort, bindString, getImplicitTimeZone, setImplicitTimeZone
Methods inherited from interface javax.xml.xquery.XQPreparedExpression
close, isClosed
-
Constructor Details
-
SaxonXQPreparedExpression
protected SaxonXQPreparedExpression(SaxonXQConnection connection, XQueryExpression expression, SaxonXQStaticContext sqc, DynamicQueryContext context) throws XQException - Throws:
XQException
-
-
Method Details
-
getDynamicContext
- Specified by:
getDynamicContext
in classSaxonXQDynamicContext
-
getConnection
-
getDataFactory
- Specified by:
getDataFactory
in classSaxonXQDynamicContext
- Throws:
XQException
-
getXQueryExpression
-
getSaxonXQStaticContext
-
cancel
Description copied from interface:XQPreparedExpression
Attempts to cancel the execution if both the XQuery engine and XQJ driver support aborting the execution of anXQPreparedExpression
. This method can be used by one thread to cancel anXQPreparedExpression
, that is being executed in another thread. If cancellation is not supported or the attempt to cancel the execution was not successful, the method returns without any error. If the cancellation is successful, anXQException
is thrown, to indicate that it has been aborted, byexecuteQuery
,executeCommand
or any method accessing theXQResultSequence
returned byexecuteQuery
. If applicable, any openXQResultSequence
andXQResultItem
objects will also be implicitly closed in this case.- Specified by:
cancel
in interfaceXQPreparedExpression
- Throws:
XQException
- if the prepared expression is in a closed state
-
executeQuery
Description copied from interface:XQPreparedExpression
Executes the prepared query expression. Calling this method implicitly closes any previous result sequence obtained from this expression.- Specified by:
executeQuery
in interfaceXQPreparedExpression
- Returns:
- the xquery sequence object containing the result of the query execution
- Throws:
XQException
- if (1) there are errors when executing the prepared expression, (2) the prepared expression is in a closed state, or (3) the query execution is cancelled
-
getAllExternalVariables
Description copied from interface:XQPreparedExpression
Retrieves all the external variables defined in the prolog of the prepared expression.- Specified by:
getAllExternalVariables
in interfaceXQPreparedExpression
- Returns:
- an array of
QName
objects for all the external variables defined in the prolog of a prepared expression. Empty array if there are no external variables present. - Throws:
XQException
- if the prepared expression is in a closed state
-
getAllUnboundExternalVariables
Description copied from interface:XQPreparedExpression
Retrieves the names of all unbound external variables.- Specified by:
getAllUnboundExternalVariables
in interfaceXQPreparedExpression
- Returns:
- the
QName
for all the external variables defined in the prolog of a prepared expression that are yet to be bound with a value. If there are no such variables an empty array is returned - Throws:
XQException
- if the prepared expression is in a closed state
-
getStaticContext
Description copied from interface:XQPreparedExpression
Gets anXQStaticContext
representing the values for all expression properties. Note that these properties cannot be changed; in order to change, a newXQPreparedExpression
needs to be created.- Specified by:
getStaticContext
in interfaceXQPreparedExpression
- Returns:
- an
XQStaticContext
representing the values for all expression properties - Throws:
XQException
- if the expression is in a closed state
-
getStaticResultType
Description copied from interface:XQPreparedExpression
Gets the static type information of the result sequence. If an implementation does not do static typing of the query, then this method must return anXQSequenceType
object corresponding to the XQuery sequence typeitem()*
.- Specified by:
getStaticResultType
in interfaceXQPreparedExpression
- Returns:
XQSequenceType
containing the static result information.- Throws:
XQException
- if the prepared expression is in a closed state
-
getStaticVariableType
Description copied from interface:XQPreparedExpression
Retrieves the static type of a given external variable.- Specified by:
getStaticVariableType
in interfaceXQPreparedExpression
- Parameters:
name
- the name of the external variable- Returns:
- the static type information of the variable as defined in the prolog of the prepared expression
- Throws:
XQException
- if (1) the variable does not exist in the static context of the expression, or (2) the sequence is in a closed state, or (3) thename
parameter isnull
-
externalVariableExists
- Specified by:
externalVariableExists
in classSaxonXQDynamicContext
-