config.buildDocument(new DOMSource(contextNode)); DynamicQueryContext dc = new DynamicQueryContext(config); dc.setContextItem(contextItem); dc.setParameter(contextVar, contextItem); dc.setParameter(key, paramObject); dc.setParameter(key, value);
/** * Get the initial context item for the query, if one has been set * @return the initial context item, or null if none has been set. This will not necessarily * be the same object as was supplied, but it will be an XdmItem object that represents * the same underlying node or atomic value. */ public XdmItem getContextItem() { return (XdmItem)XdmValue.wrap(context.getContextItem()); }
private void initializeController(DynamicQueryContext env, Controller controller) { HashMap parameters = env.getParameters(); if (parameters != null) { Iterator iter = parameters.keySet().iterator(); while (iter.hasNext()) { String paramName = (String)iter.next(); Object paramValue = parameters.get(paramName); controller.setParameter(paramName, paramValue); } } controller.setURIResolver(env.getURIResolver()); controller.setErrorListener(env.getErrorListener()); controller.addTraceListener(env.getTraceListener()); DateTimeValue currentDateTime = env.getCurrentDateTime(); if (currentDateTime != null) { try { controller.setCurrentDateTime(currentDateTime); } catch (XPathException e) { throw new AssertionError(e); // the value should already have been checked } } }
public XQProcessorClient() { super(); dqc = new DynamicQueryContext(config); dqc.setApplyFunctionConversionRulesToExternalVariables(false); }
@Override protected DynamicQueryContext initialValue() { DynamicQueryContext dqc = new DynamicQueryContext(config); dqc.setApplyFunctionConversionRulesToExternalVariables(false); SourceResolverImpl sResolver = (SourceResolverImpl) config.getSourceResolver(); dqc.setUnparsedTextURIResolver(sResolver); return dqc; } };
/** * Run a previously-compiled query * * @param context The dynamic context * @param query The compiled query * @param source The initial context item for the query (may be null) * @return the sequence representing the result of the query */ public static SequenceIterator query(XPathContext context, XQueryExpression query, Item source) throws XPathException { if (query == null) { return null; } DynamicQueryContext dqc = new DynamicQueryContext(context.getConfiguration()); if (source != null) { dqc.setContextItem(source); } return query.iterator(dqc); }
/** * Protected constructor * * @param processor the Saxon processor * @param expression the XQuery expression */ protected XQueryEvaluator(Processor processor, XQueryExpression expression) { this.processor = processor; this.expression = expression; this.context = new DynamicQueryContext(expression.getConfiguration()); }
/** * Apply the settings from this DynamicQueryContext to a Controller * * @param controller the Controller whose settings are to be initialized */ public void initializeController(/*@NotNull*/ Controller controller) throws XPathException { controller.setURIResolver(getURIResolver()); controller.setErrorListener(getErrorListener()); controller.addTraceListener(getTraceListener()); if (unparsedTextURIResolver != null) { controller.setUnparsedTextURIResolver(unparsedTextURIResolver); } controller.setTraceFunctionDestination(getTraceFunctionDestination()); controller.setSchemaValidationMode(getSchemaValidationMode()); DateTimeValue currentDateTime = getCurrentDateTime(); if (currentDateTime != null) { try { controller.setCurrentDateTime(currentDateTime); } catch (XPathException e) { throw new AssertionError(e); // the value should already have been checked } } controller.setGlobalContextItem(contextItem); controller.initializeController(parameters); controller.setApplyFunctionConversionRulesToExternalVariables(applyConversionRules); //controller.getExecutable().checkAllRequiredParamsArePresent(parameters); //controller.getBindery().defineGlobalParameters(parameters); }
/** * Set the context item for evaluating the expression to be a node. If this method is not called, * the context node will be undefined. The context node is available as the value of * the expression ".". * To obtain a NodeInfo by parsing a source document, see the method * {@link net.sf.saxon.Configuration#buildDocument buildDocument} * in class QueryProcessor. * * @param node The node that is to be the context node for the query * @since 8.4 * @deprecated From Saxon 8.7, the method {@link #setContextItem(Item)} is preferred */ public void setContextNode(NodeInfo node) { if (node==null) { throw new NullPointerException("Context node cannot be null"); } setContextItem(node); }
protected void configureQuery(DynamicQueryContext dynamicEnv, MessageExchange exchange, NormalizedMessage in) throws Exception { for (Iterator iter = exchange.getPropertyNames().iterator(); iter.hasNext();) { String name = (String) iter.next(); Object value = exchange.getProperty(name); dynamicEnv.setParameter(name, value); } for (Iterator iter = in.getPropertyNames().iterator(); iter.hasNext();) { String name = (String) iter.next(); Object value = in.getProperty(name); dynamicEnv.setParameter(name, value); } Map parameters = getParameters(); if (parameters != null) { for (Iterator iter = parameters.keySet().iterator(); iter.hasNext();) { String name = (String) iter.next(); Object value = parameters.get(name); dynamicEnv.setParameter(name, value); } } dynamicEnv.setParameter("exchange", exchange); dynamicEnv.setParameter("in", in); dynamicEnv.setParameter("component", this); }
DynamicQueryContext dynamicEnv = new DynamicQueryContext(config); Properties outputProps = new Properties(); dynamicEnv.setURIResolver(config.makeURIResolver(uriResolverClass));
private XPathContextMajor initialContext(DynamicQueryContext dynamicEnv, Controller controller) throws XPathException { Item contextItem = dynamicEnv.getContextItem(); controller.defineGlobalParameters(); XPathContextMajor context = controller.newXPathContext(); if (contextItem != null) { if (!staticContext.getUserQueryContext().getRequiredContextItemType().matchesItem( contextItem, false, dynamicEnv.getConfiguration())) { throw new XPathException("The supplied context item does not match the required context item type"); } UnfailingIterator single = SingletonIterator.makeIterator(contextItem); single.next(); context.setCurrentIterator(single); controller.setInitialContextItem(contextItem); } return context; }
DynamicQueryContext context = new DynamicQueryContext(config); try { StreamSource doc = new StreamSource(new StringReader(inputDoc)); DocumentInfo docInfo = staticContext.buildDocument(doc); context.setContextNode(docInfo); props.setProperty(OutputKeys.METHOD, "text"); DynamicQueryContext dynamicContext = new DynamicQueryContext(config); dynamicContext.setContextNode(docInfo); SequenceIterator iter = exp.iterator(dynamicContext); QueryResult.serializeSequence(iter, config, buff, props);
dynamicEnv.setTraceFunctionDestination(System.out); } else if (value.equals("#null")) { dynamicEnv.setTraceFunctionDestination(null); } else { try { dynamicEnv.setTraceFunctionDestination( new PrintStream(new FileOutputStream(new File(value)))); closeTraceDestination = true; dynamicEnv.setParameter(argname.substring(1), sources); } else { dynamicEnv.setParameter(argname, new UntypedAtomicValue(argvalue));
throw new IllegalStateException("Query is updating; cannot run with streaming"); Configuration config = context.getConfiguration(); if (config.isTiming()) { String systemId = source.getSystemId();
if (affectedDocuments.contains(dynamicEnv.getContextItem())) { QueryResult.serialize((NodeInfo)dynamicEnv.getContextItem(), new StreamResult(destination), outputProps); dynamicEnv.getTraceFunctionDestination().close();
/** * Get the registered TraceListener, if any * * @return listener the TraceListener in use, or null if none has been set */ public TraceListener getTraceListener() { return context.getTraceListener(); }
/** * Get the error listener. * * @return the ErrorListener in use */ public ErrorListener getErrorListener() { return context.getErrorListener(); }
controller = expression.newController(context); } else { context.initializeController(controller); ((TinyBuilder) sourceTreeBuilder).setStatistics(context.getConfiguration().getTreeStatistics().SOURCE_DOCUMENT_STATISTICS);
/** * Run a previously-compiled query * * @param context The dynamic context * @param query The compiled query * @param source The initial context item for the query (may be null) * @return the sequence representing the result of the query */ public static SequenceIterator query(XPathContext context, XQueryExpression query, Item source) throws XPathException { if (query == null) { return null; } DynamicQueryContext dqc = new DynamicQueryContext(context.getConfiguration()); if (source != null) { dqc.setContextItem(source); } return query.iterator(dqc); }