//private ArrayList declaredVariables; // internal constructor internal XPathExecutable(JXPathExpression exp, JConfiguration config, JIndependentContext env /*, ArrayList declaredVariables*/) { this.exp = exp; this.config = config; this.env = env; //this.declaredVariables = declaredVariables; }
// internal constructor internal XPathSelector(JXPathExpression exp, JConfiguration config, DotNetIndependentContext env) { this.exp = exp.getInternalExpression(); this.config = config; this.env = env; variableValues = new JValueRepresentation[env.getStackFrameMap().getNumberOfVariables()]; // TODO: there are some reuse issues here if the compiler/static context has been reused }
private ArrayList declaredVariables; // a list of XPathVariable objects // internal constructor internal XPathSelector(JXPathExpression exp, JConfiguration config, ArrayList declaredVariables) { this.exp = exp; this.config = config; //this.env = env; this.declaredVariables = declaredVariables; this.dynamicContext = exp.createDynamicContext(null); }
/// <summary> /// Compile an expression supplied as a String. /// </summary> /// <example> /// <code> /// XPathExecutable q = compiler.Compile("distinct-values(//*/node-name()"); /// </code> /// </example> /// <param name="source">A string containing the source text of the XPath expression</param> /// <returns>An <c>XPathExecutable</c> which represents the compiled xpath expression object. /// The XPathExecutable may be run as many times as required, in the same or a different /// thread. The <c>XPathExecutable</c> is not affected by any changes made to the <c>XPathCompiler</c> /// once it has been compiled.</returns> public XPathExecutable Compile(String source) { JXPathEvaluator eval = new JXPathEvaluator(config); eval.setStaticContext(env); JXPathExpression cexp = eval.createExpression(source); return(new XPathExecutable(cexp, config, env, declaredVariables)); }
/// <summary> /// Compile an expression supplied as a String. /// </summary> /// <example> /// <code> /// XPathExecutable q = compiler.Compile("distinct-values(//*/node-name()"); /// </code> /// </example> /// <param name="source">A string containing the source text of the XPath expression</param> /// <returns>An <c>XPathExecutable</c> which represents the compiled xpath expression object. /// The XPathExecutable may be run as many times as required, in the same or a different /// thread. The <c>XPathExecutable</c> is not affected by any changes made to the <c>XPathCompiler</c> /// once it has been compiled.</returns> /// <exception cref="StaticError"> /// Throws a <c>Saxon.Api.StaticError</c> if there is any static error in the XPath expression. /// This includes both syntax errors, semantic errors such as references to undeclared functions or /// variables, and statically-detected type errors. /// </exception> public XPathExecutable Compile(String source) { if (cache != null) { XPathExecutable exec = (XPathExecutable)cache[source]; if (exec != null) { return(exec); } } try { JIndependentContext ic = env; if (ic.isAllowUndeclaredVariables()) { // self-declaring variables modify the static context. The XPathCompiler must not change state // as the result of compiling an expression, so we need to copy the static context. ic = new JIndependentContext(env); for (JIterator iter = env.iterateExternalVariables(); iter.hasNext();) { JXPathVariable var = (JXPathVariable)iter.next(); JXPathVariable var2 = ic.declareVariable(var.getVariableQName()); } } JXPathEvaluator eval = new JXPathEvaluator(config); eval.setStaticContext(ic); JXPathExpression cexp = eval.createExpression(source); XPathExecutable exec = new XPathExecutable(cexp, config, ic); if (cache != null) { cache[source] = exec; } return(exec); } catch (net.sf.saxon.trans.XPathException err) { throw new StaticError(err); } }
/// <summary> /// Compile an expression supplied as a String. /// </summary> /// <example> /// <code> /// XPathExecutable q = compiler.Compile("distinct-values(//*/node-name()"); /// </code> /// </example> /// <param name="source">A string containing the source text of the XPath expression</param> /// <returns>An <c>XPathExecutable</c> which represents the compiled xpath expression object. /// The XPathExecutable may be run as many times as required, in the same or a different /// thread. The <c>XPathExecutable</c> is not affected by any changes made to the <c>XPathCompiler</c> /// once it has been compiled.</returns> public XPathExecutable Compile(String source) { JIndependentContext ic = env; if (ic.isAllowUndeclaredVariables()) { // self-declaring variables modify the static context. The XPathCompiler must not change state // as the result of compiling an expression, so we need to copy the static context. ic = env.copy(); for (JIterator iter = env.iterateExternalVariables(); iter.hasNext();) { JXPathVariable var = (JXPathVariable)iter.next(); JXPathVariable var2 = ic.declareVariable(var.getVariableQName()); } } JXPathEvaluator eval = new JXPathEvaluator(config); eval.setStaticContext(ic); JXPathExpression cexp = eval.createExpression(source); return(new XPathExecutable(cexp, config, ic)); }
private ArrayList declaredVariables; // a list of XPathVariable objects // internal constructor internal XPathSelector(JXPathExpression exp, JConfiguration config, ArrayList declaredVariables) { this.exp = exp; this.config = config; //this.env = env; this.declaredVariables = declaredVariables; this.dynamicContext = exp.createDynamicContext(null); }
//private ArrayList declaredVariables; // internal constructor internal XPathExecutable(JXPathExpression exp, JConfiguration config, JIndependentContext env /*, ArrayList declaredVariables*/) { this.exp = exp; this.config = config; this.env = env; //this.declaredVariables = declaredVariables; }
// internal constructor internal XPathExecutable(JXPathExpression exp, JConfiguration config, DotNetIndependentContext env) { this.exp = exp; this.config = config; this.env = env; }
// internal constructor internal XPathSelector(JXPathExpression exp, JConfiguration config, DotNetIndependentContext env) { this.exp = exp.getInternalExpression(); this.config = config; this.env = env; variableValues = new JValueRepresentation[env.getStackFrameMap().getNumberOfVariables()]; // TODO: there are some reuse issues here if the compiler/static context has been reused }
// internal constructor internal XPathExecutable(JXPathExpression exp, JConfiguration config, DotNetIndependentContext env) { this.exp = exp; this.config = config; this.env = env; }