org.basex.api.xqj
Class BXQExpression

java.lang.Object
  extended by org.basex.api.xqj.BXQExpression
All Implemented Interfaces:
XQDynamicContext, XQExpression

public final class BXQExpression
extends java.lang.Object
implements XQExpression

Java XQuery API - Expression.

Author:
Workgroup DBIS, University of Konstanz 2005-08, ISC License, Christian Gruen

Method Summary
 void bindAtomicValue(javax.xml.namespace.QName qn, java.lang.String v, XQItemType t)
          Binds a value to the given external variable or the context item.
 void bindBoolean(javax.xml.namespace.QName qn, boolean v, XQItemType it)
          Binds a value to the given external variable or the context item.
 void bindByte(javax.xml.namespace.QName qn, byte v, XQItemType t)
          Binds a value to the given external variable or the context item.
 void bindDocument(javax.xml.namespace.QName qn, java.io.InputStream is, java.lang.String base, XQItemType t)
          Binds a value to the given external variable or the context item.
 void bindDocument(javax.xml.namespace.QName qn, java.io.Reader r, java.lang.String base, XQItemType t)
          Binds a value to the given external variable or the context item.
 void bindDocument(javax.xml.namespace.QName qn, javax.xml.transform.Source s, XQItemType t)
          Binds a value to the given external variable or the context item from the given Source.
 void bindDocument(javax.xml.namespace.QName qn, java.lang.String v, java.lang.String base, XQItemType t)
          Binds a value to the given external variable or the context item.
 void bindDocument(javax.xml.namespace.QName qn, org.xml.sax.XMLReader r, XQItemType t)
          Binds a value to the given external variable.
 void bindDocument(javax.xml.namespace.QName qn, javax.xml.stream.XMLStreamReader sr, XQItemType t)
          Binds a value to the given external variable or the context item.
 void bindDouble(javax.xml.namespace.QName qn, double v, XQItemType t)
          Binds a value to the given external variable or the context item.
 void bindFloat(javax.xml.namespace.QName qn, float v, XQItemType t)
          Binds a value to the given external variable or the context item.
 void bindInt(javax.xml.namespace.QName qn, int v, XQItemType t)
          Binds a value to the given external variable or the context item.
 void bindItem(javax.xml.namespace.QName qn, XQItem t)
          Binds a value to the given external variable.
 void bindLong(javax.xml.namespace.QName qn, long v, XQItemType t)
          Binds a value to the given external variable or the context item.
 void bindNode(javax.xml.namespace.QName qn, org.w3c.dom.Node n, XQItemType t)
          Binds a value to the given external variable or the context item.
 void bindObject(javax.xml.namespace.QName qn, java.lang.Object v, XQItemType t)
          Binds a value to the given external variable or the context item.
 void bindSequence(javax.xml.namespace.QName qn, XQSequence s)
          Binds a value to the given external variable or the context item.
 void bindShort(javax.xml.namespace.QName qn, short v, XQItemType t)
          Binds a value to the given external variable or the context item.
 void bindString(javax.xml.namespace.QName qn, java.lang.String v, XQItemType t)
          Binds a value to the given external variable or the context item.
 void cancel()
          Attempts to cancel the execution if both the XQuery engine and XQJ driver support aborting the execution of an XQExpression.
 void close()
          Closes the class.
 void executeCommand(java.io.Reader cmd)
          Executes an implementation-defined command.
 void executeCommand(java.lang.String cmd)
          Executes an implementation-defined command.
 XQResultSequence executeQuery(java.io.InputStream qu)
          Executes a query expression.
 XQResultSequence executeQuery(java.io.Reader qu)
          Executes a query expression.
 XQResultSequence executeQuery(java.lang.String input)
          Executes a query expression.
 java.util.TimeZone getImplicitTimeZone()
          Gets the implicit timezone
 XQStaticContext getStaticContext()
          Gets an XQStaticContext representing the values for all expression properties.
 boolean isClosed()
          Returns the closed flag.
 void setImplicitTimeZone(java.util.TimeZone tz)
          Sets the implicit timezone
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.xml.xquery.XQExpression
close, isClosed
 
Methods inherited from interface javax.xml.xquery.XQDynamicContext
bindAtomicValue, bindBoolean, bindByte, bindDocument, bindDocument, bindDocument, bindDocument, bindDocument, bindDocument, bindDouble, bindFloat, bindInt, bindItem, bindLong, bindNode, bindObject, bindSequence, bindShort, bindString, getImplicitTimeZone, setImplicitTimeZone
 

Method Detail

cancel

public void cancel()
            throws XQException
Description copied from interface: XQExpression
Attempts to cancel the execution if both the XQuery engine and XQJ driver support aborting the execution of an XQExpression. This method can be used by one thread to cancel an XQExpression, 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, an XQException is thrown, to indicate that it has been aborted, by executeQuery, executeCommand or any method accessing the XQResultSequence returned by executeQuery. If applicable, any open XQResultSequence and XQResultItem objects will also be implicitly closed in this case.

Specified by:
cancel in interface XQExpression
Throws:
XQException - if the expression is in a closed state

executeCommand

public void executeCommand(java.lang.String cmd)
                    throws XQException
Description copied from interface: XQExpression
Executes an implementation-defined command. Calling this method implicitly closes any previous result sequence obtained from this expression.

Specified by:
executeCommand in interface XQExpression
Parameters:
cmd - the input command as a string
Throws:
XQException - if (1) there are errors when executing the command, or (2) the expression is in a closed state

executeCommand

public void executeCommand(java.io.Reader cmd)
                    throws XQException
Description copied from interface: XQExpression
Executes an implementation-defined command. Calling this method implicitly closes any previous result sequence obtained from this expression.

Specified by:
executeCommand in interface XQExpression
Parameters:
cmd - the input command as a string reader
Throws:
XQException - if (1) there are errors when executing the command, (2) the expression is in a closed state, or (3) the execution is cancelled

executeQuery

public XQResultSequence executeQuery(java.lang.String input)
                              throws XQException
Description copied from interface: XQExpression
Executes a query expression. This implicitly closes any previous result sequences obtained from this expression.

Specified by:
executeQuery in interface XQExpression
Parameters:
input - the input query expression string. Cannot be null
Returns:
an XQResultSequence object containing the result of the query execution
Throws:
XQException - if (1) there are errors when executing the query, (2) the expression is in a closed state, (3) the execution is cancelled, (4) the query parameter is null

executeQuery

public XQResultSequence executeQuery(java.io.Reader qu)
                              throws XQException
Description copied from interface: XQExpression
Executes a query expression. This implicitly closes any previous result sequences obtained from this expression.

Specified by:
executeQuery in interface XQExpression
Parameters:
qu - the input query expression as a reader object. Cannot be null
Returns:
an XQResultSequence object containing the result of the query execution
Throws:
XQException - if (1) there are errors when executing the query, (2) the expression is in a closed state, (3) the execution is cancelled, or (4) the query parameter is null

executeQuery

public XQResultSequence executeQuery(java.io.InputStream qu)
                              throws XQException
Description copied from interface: XQExpression
Executes a query expression. This implicitly closes any previous result sequences obtained from this expression. If the query specifies a version declaration including an encoding, the XQJ implementation may try use this information to parse the query. In absence of the version declaration, the assumed encoding is implementation dependent.

Specified by:
executeQuery in interface XQExpression
Parameters:
qu - the input query expression as a input stream object. Cannot be null
Returns:
an XQResultSequence containing the result of the query execution
Throws:
XQException - if (1) there are errors when executing the query, (2) the expression is in a closed state, (3) the execution is cancelled, or (4) the xquery parameter is null

getStaticContext

public XQStaticContext getStaticContext()
                                 throws XQException
Description copied from interface: XQExpression
Gets an XQStaticContext representing the values for all expression properties. Note that these properties cannot be changed; in order to change, a new XQExpression needs to be created.

Specified by:
getStaticContext in interface XQExpression
Returns:
an XQStaticContext representing the values for all expression properties
Throws:
XQException - if the expression is in a closed state

bindAtomicValue

public void bindAtomicValue(javax.xml.namespace.QName qn,
                            java.lang.String v,
                            XQItemType t)
                     throws XQException
Description copied from interface: XQDynamicContext
Binds a value to the given external variable or the context item. The value is converted into an instance of the specified type according to the casting from xs:string rules outlined in 17.1.1 Casting from xs:string and xs:untypedAtomic, XQuery 1.0 and XPath 2.0 Functions and Operators. If the cast fails, or if there is a mismatch between the static and dynamic types, an XQException is thrown either by this method or during query evaluation.

Specified by:
bindAtomicValue in interface XQDynamicContext
Parameters:
qn - the name of the external variable to bind to
v - the lexical string value of the type
t - the item type of the bind
Throws:
XQException - if (1) any of the arguments are null, (2) given type is not an atomic type, (3) the conversion of the value to an XDM instance failed, (4) in case of an XQPreparedExpression, the dynamic type of the bound value is not compatible with the static type of the variable, (5) in case of an XQPreparedExpression, the variable is not defined in the prolog of the expression, or (6) the expression is in a closed state

bindBoolean

public void bindBoolean(javax.xml.namespace.QName qn,
                        boolean v,
                        XQItemType it)
                 throws XQException
Description copied from interface: XQDynamicContext
Binds a value to the given external variable or the context item. The value is converted into an instance of the specified type according to the rule defined in 14.2 Mapping a Java Data Type to an XQuery Data Type, XQuery API for Java (XQJ) 1.0. If the conversion fails, or if there is a mismatch between the static and dynamic types, an XQException is raised either by this method, or during query evaluation.

Specified by:
bindBoolean in interface XQDynamicContext
Parameters:
qn - the name of the external variable to bind to, cannot be null
v - the value to be converted
it - the type of the value to be bound to the external variable. The default type of the value is used in case null is specified
Throws:
XQException - if (1) the varName argument is null, (2) the conversion of the value to an XDM instance failed, (3) in case of an XQPreparedExpression, the dynamic type of the bound value is not compatible with the static type of the variable, (4) in case of an XQPreparedExpression, the variable is not defined in the prolog of the expression, or (5) if the expression is in a closed state

bindByte

public void bindByte(javax.xml.namespace.QName qn,
                     byte v,
                     XQItemType t)
              throws XQException
Description copied from interface: XQDynamicContext
Binds a value to the given external variable or the context item. The value is converted into an instance of the specified type according to the rule defined in 14.2 Mapping a Java Data Type to an XQuery Data Type, XQuery API for Java (XQJ) 1.0. If the conversion fails, or if there is a mismatch between the static and dynamic types, an XQException is raised either by this method, or during query evaluation.

Specified by:
bindByte in interface XQDynamicContext
Parameters:
qn - the name of the external variable to bind to, cannot be null
v - the value to be converted
t - the type of the value to be bound to the external variable. The default type of the value is used in case null is specified
Throws:
XQException - if (1) the varName argument is null, (2) the conversion of the value to an XDM instance failed, (3) in case of an XQPreparedExpression, the dynamic type of the bound value is not compatible with the static type of the variable, (4) in case of an XQPreparedExpression, the variable is not defined in the prolog of the expression, or (5) if the expression is in a closed state

bindDocument

public void bindDocument(javax.xml.namespace.QName qn,
                         java.io.InputStream is,
                         java.lang.String base,
                         XQItemType t)
                  throws XQException
Description copied from interface: XQDynamicContext
Binds a value to the given external variable or the context item.

If the value represents a well-formed XML document, it will be parsed and results in a document node. The kind of the input type must be null, XQITEMKIND_DOCUMENT_ELEMENT, or XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT.

The value is converted into an instance of the specified type according to the rules defined in 14.3 Mapping a Java XML document to an XQuery document node, XQuery API for Java (XQJ) 1.0.

If the conversion fails, or if there is a mismatch between the static and dynamic types, an XQException is raised either by this method, or during query evaluation. If the value is not well formed, or if a kind of the input type other than the values list above is specified, behavior is implementation defined and may raise an exception.

Specified by:
bindDocument in interface XQDynamicContext
Parameters:
qn - the name of the external variable to bind to, cannot be null
is - the value to be converted, cannot be null
base - an optional base URI, can be null. It can be used, for example, to resolve relative URIs and to include in error messages.
t - the type of the value for the created document node. If null is specified, it behaves as if XQDataFactory.createDocumentElementType( XQDataFactory.createElementType(null, XQItemType.XQBASETYPE_XS_UNTYPED)) were passed in as the type parameter. That is, the type represents the XQuery sequence type document-node(element(*, xs:untyped))
Throws:
XQException - if (1) the varName or value argument is null, (2) the conversion of the value to an XDM instance failed, (3) in case of an XQPreparedExpression, the dynamic type of the bound value is not compatible with the static type of the variable, (4) in case of an XQPreparedExpression, the variable is not defined in the prolog of the expression, or (5) if the expression is in a closed state

bindDocument

public void bindDocument(javax.xml.namespace.QName qn,
                         java.io.Reader r,
                         java.lang.String base,
                         XQItemType t)
                  throws XQException
Description copied from interface: XQDynamicContext
Binds a value to the given external variable or the context item.

If the value represents a well-formed XML document, it will be parsed and results in a document node. The kind of the input type must be null, XQITEMKIND_DOCUMENT_ELEMENT, or XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT.

The value is converted into an instance of the specified type according to the rules defined in 14.3 Mapping a Java XML document to an XQuery document node, XQuery API for Java (XQJ) 1.0.

If the conversion fails, or if there is a mismatch between the static and dynamic types, an XQException is raised either by this method, or during query evaluation. If the value is not well formed, or if a kind of the input type other than the values list above is specified, behavior is implementation defined and may raise an exception.

Specified by:
bindDocument in interface XQDynamicContext
Parameters:
qn - the name of the external variable to bind to, cannot be null
r - the value to be converted, cannot be null
base - an optional base URI, can be null. It can be used, for example, to resolve relative URIs and to include in error messages.
t - the type of the value for the created document node. If null is specified, it behaves as if XQDataFactory.createDocumentElementType( XQDataFactory.createElementType(null, XQItemType.XQBASETYPE_XS_UNTYPED)) were passed in as the type parameter. That is, the type represents the XQuery sequence type document-node(element(*, xs:untyped))
Throws:
XQException - if (1) the varName or value argument is null, (2) the conversion of the value to an XDM instance failed, (3) in case of an XQPreparedExpression, the dynamic type of the bound value is not compatible with the static type of the variable, (4) in case of an XQPreparedExpression, the variable is not defined in the prolog of the expression, or (5) if the expression is in a closed state

bindDocument

public void bindDocument(javax.xml.namespace.QName qn,
                         javax.xml.transform.Source s,
                         XQItemType t)
                  throws XQException
Description copied from interface: XQDynamicContext
Binds a value to the given external variable or the context item from the given Source. An XQJ implementation must at least support the following implementations:

If the value represents a well-formed XML document, it will result in a document node. The kind of the input type must be null, XQITEMKIND_DOCUMENT_ELEMENT, or XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT.

The value is converted into an instance of the specified type according to the rules defined in 14.3 Mapping a Java XML document to an XQuery document node, XQuery API for Java (XQJ) 1.0.

If the value is not well formed, or if a kind of the input type other than the values list above is specified, behavior is implementation defined and may raise an exception. If the conversion fails, or if there is a mismatch between the static and dynamic types, an XQException is raised either by this method, or during query evaluation.

Specified by:
bindDocument in interface XQDynamicContext
Parameters:
qn - the name of the external variable to bind to, cannot be null
s - the value to be converted, cannot be null
t - the type of the value for the created document node. If null is specified, it behaves as if XQDataFactory.createDocumentElementType( XQDataFactory.createElementType(null, XQItemType.XQBASETYPE_XS_UNTYPED)) were passed in as the type parameter. That is, the type represents the XQuery sequence type document-node(element(*, xs:untyped))
Throws:
XQException - if (1) the varName or value argument is null, (2) the conversion of the value to an XDM instance failed, (3) in case of an XQPreparedExpression, the dynamic type of the bound value is not compatible with the static type of the variable, (4) in case of an XQPreparedExpression, the variable is not defined in the prolog of the expression, or (5) if the expression is in a closed state

bindDocument

public void bindDocument(javax.xml.namespace.QName qn,
                         java.lang.String v,
                         java.lang.String base,
                         XQItemType t)
                  throws XQException
Description copied from interface: XQDynamicContext
Binds a value to the given external variable or the context item.

If the value represents a well-formed XML document, it will be parsed and results in a document node. The kind of the input type must be null, XQITEMKIND_DOCUMENT_ELEMENT, or XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT.

The value is converted into an instance of the specified type according to the rules defined in 14.3 Mapping a Java XML document to an XQuery document node, XQuery API for Java (XQJ) 1.0.

If the conversion fails, or if there is a mismatch between the static and dynamic types, an XQException is raised either by this method, or during query evaluation. If the value is not well formed, or if a kind of the input type other than the values list above is specified, behavior is implementation defined and may raise an exception.

Specified by:
bindDocument in interface XQDynamicContext
Parameters:
qn - the name of the external variable to bind to, cannot be null
v - the value to be converted, cannot be null
base - an optional base URI, can be null. It can be used, for example, to resolve relative URIs and to include in error messages.
t - the type of the value for the created document node. If null is specified, it behaves as if XQDataFactory.createDocumentElementType( XQDataFactory.createElementType(null, XQItemType.XQBASETYPE_XS_UNTYPED)) were passed in as the type parameter. That is, the type represents the XQuery sequence type document-node(element(*, xs:untyped))
Throws:
XQException - if (1) the varName or value argument is null, (2) the conversion of the value to an XDM instance failed, (3) in case of an XQPreparedExpression, the dynamic type of the bound value is not compatible with the static type of the variable, (4) in case of an XQPreparedExpression, the variable is not defined in the prolog of the expression, or (5) if the expression is in a closed state

bindDocument

public void bindDocument(javax.xml.namespace.QName qn,
                         org.xml.sax.XMLReader r,
                         XQItemType t)
                  throws XQException
Description copied from interface: XQDynamicContext
Binds a value to the given external variable.

If the XMLReader produces a well-formed XML document, it results in a document node. The kind of the input type must be null, XQITEMKIND_DOCUMENT_ELEMENT or XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT.

The value is converted into an instance of the specified type according to the rules defined in 14.3 Mapping a Java XML document to an XQuery document node, XQuery API for Java (XQJ) 1.0.

If the value is not well formed, or if a kind of the input type other than the values list above is specified, behavior is implementation defined and may raise an exception. If the conversion fails, or if there is a mismatch between the static and dynamic types, an XQException is raised either by this method, or the execute method.

The contract of this method is as follows. First a ContentHandler is passed to the XML XMLReader; and optionally an implementation can specify additional handlers like a LexicalHandler. Subsequently parse(String systemId) will be invoked; and as such the XMLReader will pass the SAX event representing the document to bind. The systemId argument identifies the external variable, a QName formatted into a String using the James Clark representation.

Example - the application loads an XML document (foo.xml) using a SAX parser, this document is bound to an external variable. The XQuery returns all foo elements in the document, which are written to stdout. Assume there is an XQConnection connection...
  ...

  // Create an XMLReader, which will pass the SAX events to the XQJ
  // implementation 
  XMLFilter xmlReader = new XMLFilterImpl() {

    public void parse(String systemId) throws IOException,
    SAXException {

       // foo.xml is the XML document to bind 
       super.parse("foo.xml");

      }        

    };

  // The parent XML Reader is a SAX parser, which will do the
  // actual work of parsing the XML document
  xmlReader.setParent(org.xml.sax.helpers.XMLReaderFactory.createXMLReader());

  // Create an XQPreparedExpression
  XQPreparedExpression e =  connection.prepareExpression("declare variable $doc as
                       document-node(element(*, xs:untyped)) external; $doc//foo));

  e.bindDocument(new QName("doc"), xmlReader);

  XQResultSequence result = preparedExpression.executeQuery();

  result.writeSequence(System.out);
  ...
 

Specified by:
bindDocument in interface XQDynamicContext
Parameters:
qn - the name of the external variable to bind to, cannot be null
r - the XMLReader producing SAX events representing the document to bind
t - the type of the value for the created document node. If null is specified, it behaves as if XQDataFactory.createDocumentElementType( XQDataFactory.createElementType(null, XQItemType.XQBASETYPE_XS_UNTYPED)) were passed in as the type parameter. That is, the type represents the XQuery sequence type document-node(element(*, xs:untyped))
Throws:
XQException - if (1) the varName or value argument is null, (2) the conversion of the value to an XDM instance failed, (3) in case of an XQPreparedExpression, the dynamic type of the bound value is not compatible with the static type of the variable, (4) in case of an XQPreparedExpression, the variable is not defined in the prolog of the expression, (5) if the expression is in a closed state, or (6) the XMLReader reports an error during parse()

bindDocument

public void bindDocument(javax.xml.namespace.QName qn,
                         javax.xml.stream.XMLStreamReader sr,
                         XQItemType t)
                  throws XQException
Description copied from interface: XQDynamicContext
Binds a value to the given external variable or the context item.

If the value represents a well-formed XML document, it results in a document node. The kind of the input type must be null, XQITEMKIND_DOCUMENT_ELEMENT or XQITEMKIND_DOCUMENT_SCHEMA_ELEMENT.

The value is converted into an instance of the specified type according to the rules defined in 14.3 Mapping a Java XML document to an XQuery document node, XQuery API for Java (XQJ) 1.0.

If the value is not well formed, or if a kind of the input type other than the values list above is specified, behavior is implementation defined and may raise an exception. If the conversion fails, or if there is a mismatch between the static and dynamic types, an XQException is raised either by this method, or during query evaluation.

Specified by:
bindDocument in interface XQDynamicContext
Parameters:
qn - the name of the external variable to bind to, cannot be null
sr - the value to be converted, cannot be null
t - the type of the value for the created document node. If null is specified, it behaves as if XQDataFactory.createDocumentElementType( XQDataFactory.createElementType(null, XQItemType.XQBASETYPE_XS_UNTYPED)) were passed in as the type parameter. That is, the type represents the XQuery sequence type document-node(element(*, xs:untyped))
Throws:
XQException - if (1) the varName or value argument is null, (2) the conversion of the value to an XDM instance failed, (3) in case of an XQPreparedExpression, the dynamic type of the bound value is not compatible with the static type of the variable, (4) in case of an XQPreparedExpression, the variable is not defined in the prolog of the expression, or (5) if the expression is in a closed state

bindDouble

public void bindDouble(javax.xml.namespace.QName qn,
                       double v,
                       XQItemType t)
                throws XQException
Description copied from interface: XQDynamicContext
Binds a value to the given external variable or the context item. The value is converted into an instance of the specified type according to the rule defined in 14.2 Mapping a Java Data Type to an XQuery Data Type, XQuery API for Java (XQJ) 1.0. If the conversion fails, or if there is a mismatch between the static and dynamic types, an XQException is raised either by this method, or during query evaluations.

Specified by:
bindDouble in interface XQDynamicContext
Parameters:
qn - the name of the external variable to bind to, cannot be null
v - the value to be converted
t - the type of the value to be bound to the external variable. The default type of the value is used in case null is specified
Throws:
XQException - if (1) the varName argument is null, (2) the conversion of the value to an XDM instance failed, (3) in case of an XQPreparedExpression, the dynamic type of the bound value is not compatible with the static type of the variable, (4) in case of an XQPreparedExpression, the variable is not defined in the prolog of the expression, or (5) if the expression is in a closed state

bindFloat

public void bindFloat(javax.xml.namespace.QName qn,
                      float v,
                      XQItemType t)
               throws XQException
Description copied from interface: XQDynamicContext
Binds a value to the given external variable or the context item. The value is converted into an instance of the specified type according to the rule defined in 14.2 Mapping a Java Data Type to an XQuery Data Type, XQuery API for Java (XQJ) 1.0. If the conversion fails, or if there is a mismatch between the static and dynamic types, an XQException is raised either by this method, or during query evaluations.

Specified by:
bindFloat in interface XQDynamicContext
Parameters:
qn - the name of the external variable to bind to, cannot be null
v - the value to be converted
t - the type of the value to be bound to the external variable. The default type of the value is used in case null is specified
Throws:
XQException - if (1) the varName argument is null, (2) the conversion of the value to an XDM instance failed, (3) in case of an XQPreparedExpression, the dynamic type of the bound value is not compatible with the static type of the variable, (4) in case of an XQPreparedExpression, the variable is not defined in the prolog of the expression, or (5) if the expression is in a closed state

bindInt

public void bindInt(javax.xml.namespace.QName qn,
                    int v,
                    XQItemType t)
             throws XQException
Description copied from interface: XQDynamicContext
Binds a value to the given external variable or the context item. The value is converted into an instance of the specified type according to the rule defined in 14.2 Mapping a Java Data Type to an XQuery Data Type, XQuery API for Java (XQJ) 1.0. If the conversion fails, or if there is a mismatch between the static and dynamic types, an XQException is raised either by this method, or during query evaluations.

Specified by:
bindInt in interface XQDynamicContext
Parameters:
qn - the name of the external variable to bind to, cannot be null
v - the value to be converted
t - the type of the value to be bound to the external variable. The default type of the value is used in case null is specified
Throws:
XQException - if (1) the varName argument is null, (2) the conversion of the value to an XDM instance failed, (3) in case of an XQPreparedExpression, the dynamic type of the bound value is not compatible with the static type of the variable, (4) in case of an XQPreparedExpression, the variable is not defined in the prolog of the expression, or (5) if the expression is in a closed state

bindItem

public void bindItem(javax.xml.namespace.QName qn,
                     XQItem t)
              throws XQException
Description copied from interface: XQDynamicContext
Binds a value to the given external variable. The dynamic type of the value is derived from the XQItem. In case of a mismatch between the static and dynamic types, an XQException is raised either by this method, or during query evaluation.

Specified by:
bindItem in interface XQDynamicContext
Parameters:
qn - the name of the external variable to bind to, cannot be null
t - the value to be bound, cannot be null
Throws:
XQException - if (1) any of the arguments are null, (2) in case of an XQPreparedExpression, the dynamic type of the bound value is not compatible with the static type of the variable, (3) in case of an XQPreparedExpression, the variable is not defined in the prolog of the expression, or (4) the expression is in a closed state

bindLong

public void bindLong(javax.xml.namespace.QName qn,
                     long v,
                     XQItemType t)
              throws XQException
Description copied from interface: XQDynamicContext
Binds a value to the given external variable or the context item. The value is converted into an instance of the specified type according to the rule defined in 14.2 Mapping a Java Data Type to an XQuery Data Type, XQuery API for Java (XQJ) 1.0. If the conversion fails, or if there is a mismatch between the static and dynamic types, an XQException is raised either by this method, or during query evaluation.

Specified by:
bindLong in interface XQDynamicContext
Parameters:
qn - the name of the external variable to bind to, cannot be null
v - the value to be converted
t - the type of the value to be bound to the external variable. The default type of the value is used in case null is specified
Throws:
XQException - if (1) the varName argument is null, (2) the conversion of the value to an XDM instance failed, (3) in case of an XQPreparedExpression, the dynamic type of the bound value is not compatible with the static type of the variable, (4) in case of an XQPreparedExpression, the variable is not defined in the prolog of the expression, or (5) if the expression is in a closed state

bindNode

public void bindNode(javax.xml.namespace.QName qn,
                     org.w3c.dom.Node n,
                     XQItemType t)
              throws XQException
Description copied from interface: XQDynamicContext
Binds a value to the given external variable or the context item. The value is converted into an instance of the specified type according to the rule defined in 14.2 Mapping a Java Data Type to an XQuery Data Type, XQuery API for Java (XQJ) 1.0. If the conversion fails, or if there is a mismatch between the static and dynamic types, an XQException is raised either by this method, or during query evaluation.

Specified by:
bindNode in interface XQDynamicContext
Parameters:
qn - the name of the external variable to bind to, cannot be null
n - the value to be converted, cannot be null
t - the type of the value to be bound to the external variable. The default type of the value is used in case null is specified
Throws:
XQException - if (1) the varName or value argument is null, (2) the conversion of the value to an XDM instance failed, (3) in case of an XQPreparedExpression, the dynamic type of the bound value is not compatible with the static type of the variable, (4) in case of an XQPreparedExpression, the variable is not defined in the prolog of the expression, or (5) if the expression is in a closed state

bindObject

public void bindObject(javax.xml.namespace.QName qn,
                       java.lang.Object v,
                       XQItemType t)
                throws XQException
Description copied from interface: XQDynamicContext
Binds a value to the given external variable or the context item. The value is converted into an instance of the specified type according to the rule defined in 14.2 Mapping a Java Data Type to an XQuery Data Type, XQuery API for Java (XQJ) 1.0. If the conversion fails, or if there is a mismatch between the static and dynamic types, an XQException is raised either by this method, or during query evaluation.

Specified by:
bindObject in interface XQDynamicContext
Parameters:
qn - the name of the external variable to bind to, cannot be null
v - the value to be converted, cannot be null
t - the type of the value to be bound to the external variable. The default type of the value is used in case null is specified
Throws:
XQException - if (1) the varName or value argument is null, (2) the conversion of the value to an XDM instance failed, (3) in case of an XQPreparedExpression, the dynamic type of the bound value is not compatible with the static type of the variable, (4) in case of an XQPreparedExpression, the variable is not defined in the prolog of the expression, or (5) if the expression is in a closed state

bindSequence

public void bindSequence(javax.xml.namespace.QName qn,
                         XQSequence s)
                  throws XQException
Description copied from interface: XQDynamicContext
Binds a value to the given external variable or the context item. The input sequence is consumed from its current position to the end, after which the input sequence's position will be set to point after the last item. The dynamic type of the value is derived from the items in the sequence. In case of a mismatch between the static and dynamic types, an XQException is be raised either by this method, or during query evaluation.

Specified by:
bindSequence in interface XQDynamicContext
Parameters:
qn - the name of the external variable to bind to, cannot be null
s - the value to be bound, cannot be null
Throws:
XQException - if (1) any of the arguments are null, (2) in case of an XQPreparedExpression, the dynamic type of the bound value is not compatible with the static type of the variable, (3) in case of an XQPreparedExpression, the variable is not defined in the prolog of the expression, or (4) the expression is in a closed state

bindShort

public void bindShort(javax.xml.namespace.QName qn,
                      short v,
                      XQItemType t)
               throws XQException
Description copied from interface: XQDynamicContext
Binds a value to the given external variable or the context item. The value is converted into an instance of the specified type according to the rule defined in 14.2 Mapping a Java Data Type to an XQuery Data Type, XQuery API for Java (XQJ) 1.0. If the conversion fails, or if there is a mismatch between the static and dynamic types, an XQException is raised either by this method, or during query evaluation.

Specified by:
bindShort in interface XQDynamicContext
Parameters:
qn - the name of the external variable to bind to, cannot be null
v - the value to be converted
t - the type of the value to be bound to the external variable. The default type of the value is used in case null is specified
Throws:
XQException - if (1) the varName argument is null, (2) the conversion of the value to an XDM instance failed, (3) in case of an XQPreparedExpression, the dynamic type of the bound value is not compatible with the static type of the variable, (4) in case of an XQPreparedExpression, the variable is not defined in the prolog of the expression, or (5) if the expression is in a closed state

bindString

public void bindString(javax.xml.namespace.QName qn,
                       java.lang.String v,
                       XQItemType t)
                throws XQException
Description copied from interface: XQDynamicContext
Binds a value to the given external variable or the context item. The value is converted into an instance of the specified type, which must represent an xs:string or a type derived by restriction from xs:string. If the specified type is null, it defaults to xs:string.
Subsequently the value is converted into an instance of the specified type according to the rule defined in 14.2 Mapping a Java Data Type to an XQuery Data Type, XQuery API for Java (XQJ) 1.0,. If the conversion fails, or if there is a mismatch between the static and dynamic types, an XQException is raised either by this method, or during query evaluation.

Specified by:
bindString in interface XQDynamicContext
Parameters:
qn - the name of the external variable to bind to, cannot be null
v - the value to be converted, cannot be null
t - the type of the value to be bound to the external variable. The default type, xs:string, is used in case null is specified
Throws:
XQException - if (1) the varName or value argument is null, (2) the conversion of the value to an XDM instance failed, (3) in case of an XQPreparedExpression, the dynamic type of the bound value is not compatible with the static type of the variable, (4) in case of an XQPreparedExpression, the variable is not defined in the prolog of the expression, or (5) if the expression is in a closed state

getImplicitTimeZone

public java.util.TimeZone getImplicitTimeZone()
                                       throws XQException
Description copied from interface: XQDynamicContext
Gets the implicit timezone

Specified by:
getImplicitTimeZone in interface XQDynamicContext
Returns:
the implicit timezone. This may have been set by an application using the setImplicitTimeZone method or provided by the implementation
Throws:
XQException - if the expression is in a closed state

setImplicitTimeZone

public void setImplicitTimeZone(java.util.TimeZone tz)
                         throws XQException
Description copied from interface: XQDynamicContext
Sets the implicit timezone

Specified by:
setImplicitTimeZone in interface XQDynamicContext
Parameters:
tz - time zone to be set
Throws:
XQException - if the expression is in a closed state

close

public final void close()
Closes the class.


isClosed

public final boolean isClosed()
Returns the closed flag.

Returns:
flag