⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xpathcontext.java

📁 java1.6众多例子参考
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
  /**   * The stack of Variable stacks.  A VariableStack will be   * pushed onto this stack for each template invocation.   */  private VariableStack m_variableStacks = new VariableStack();  /**   * Get the variable stack, which is in charge of variables and   * parameters.   *   * @return the variable stack, which should not be null.   */  public final VariableStack getVarStack()  {    return m_variableStacks;  }  /**    * Get the variable stack, which is in charge of variables and   * parameters.   *   * @param varStack non-null reference to the variable stack.   */  public final void setVarStack(VariableStack varStack)  {    m_variableStacks = varStack;  }  // ================ SourceTreeManager ===================  /** The source tree manager, which associates Source objects to source    *  tree nodes. */  private SourceTreeManager m_sourceTreeManager = new SourceTreeManager();  /**   * Get the SourceTreeManager associated with this execution context.   *   * @return the SourceTreeManager associated with this execution context.   */  public final SourceTreeManager getSourceTreeManager()  {    return m_sourceTreeManager;  }  /**   * Set the SourceTreeManager associated with this execution context.   *   * @param mgr the SourceTreeManager to be associated with this    *        execution context.   */  public void setSourceTreeManager(SourceTreeManager mgr)  {    m_sourceTreeManager = mgr;  }    // =================================================  /** The ErrorListener where errors and warnings are to be reported.   */  private ErrorListener m_errorListener;  /** A default ErrorListener in case our m_errorListener was not specified and our   *  owner either does not have an ErrorListener or has a null one.   */  private ErrorListener m_defaultErrorListener;  /**   * Get the ErrorListener where errors and warnings are to be reported.   *   * @return A non-null ErrorListener reference.   */  public final ErrorListener getErrorListener()  {    if (null != m_errorListener)        return m_errorListener;    ErrorListener retval = null;    try {      if (null != m_ownerGetErrorListener)        retval = (ErrorListener) m_ownerGetErrorListener.invoke(m_owner, new Object[] {});    }    catch (Exception e) {}    if (null == retval)    {      if (null == m_defaultErrorListener)         m_defaultErrorListener = new com.sun.org.apache.xml.internal.utils.DefaultErrorHandler();      retval = m_defaultErrorListener;    }    return retval;  }  /**   * Set the ErrorListener where errors and warnings are to be reported.   *   * @param listener A non-null ErrorListener reference.   */  public void setErrorListener(ErrorListener listener) throws IllegalArgumentException  {    if (listener == null)       throw new IllegalArgumentException(XSLMessages.createXPATHMessage(XPATHErrorResources.ER_NULL_ERROR_HANDLER, null)); //"Null error handler");    m_errorListener = listener;  }  // =================================================  /** The TrAX URI Resolver for resolving URIs from the document(...)   *  function to source tree nodes.  */  private URIResolver m_uriResolver;  /**   * Get the URIResolver associated with this execution context.   *   * @return a URI resolver, which may be null.   */  public final URIResolver getURIResolver()  {    return m_uriResolver;  }  /**   * Set the URIResolver associated with this execution context.   *   * @param resolver the URIResolver to be associated with this    *        execution context, may be null to clear an already set resolver.   */  public void setURIResolver(URIResolver resolver)  {    m_uriResolver = resolver;  }  // =================================================  /** The reader of the primary source tree.    */  public XMLReader m_primaryReader;  /**   * Get primary XMLReader associated with this execution context.   *   * @return The reader of the primary source tree.   */  public final XMLReader getPrimaryReader()  {    return m_primaryReader;  }  /**   * Set primary XMLReader associated with this execution context.   *   * @param reader The reader of the primary source tree.   */  public void setPrimaryReader(XMLReader reader)  {    m_primaryReader = reader;  }  // =================================================  /** Misnamed string manager for XPath messages.  */  // private static XSLMessages m_XSLMessages = new XSLMessages();  /**   * Tell the user of an assertion error, and probably throw an   * exception.   *   * @param b  If false, a TransformerException will be thrown.   * @param msg The assertion message, which should be informative.   *    * @throws javax.xml.transform.TransformerException if b is false.   */  private void assertion(boolean b, String msg) throws javax.xml.transform.TransformerException  {    if (!b)     {      ErrorListener errorHandler = getErrorListener();      if (errorHandler != null)      {        errorHandler.fatalError(          new TransformerException(            XSLMessages.createMessage(              XPATHErrorResources.ER_INCORRECT_PROGRAMMER_ASSERTION,              new Object[]{ msg }), (SAXSourceLocator)this.getSAXLocator()));      }    }  }  //==========================================================  // SECTION: Execution context state tracking  //==========================================================    /**   * The current context node list.   */  private Stack m_contextNodeLists = new Stack();    public Stack getContextNodeListsStack() { return m_contextNodeLists; }  public void setContextNodeListsStack(Stack s) { m_contextNodeLists = s; }  /**   * Get the current context node list.   *   * @return  the <a href="http://www.w3.org/TR/xslt#dt-current-node-list">current node list</a>,   * also refered to here as a <term>context node list</term>.   */  public final DTMIterator getContextNodeList()  {    if (m_contextNodeLists.size() > 0)      return (DTMIterator) m_contextNodeLists.peek();    else      return null;  }  /**   * Set the current context node list.   *   * @param nl the <a href="http://www.w3.org/TR/xslt#dt-current-node-list">current node list</a>,   * also refered to here as a <term>context node list</term>.   * @xsl.usage internal   */  public final void pushContextNodeList(DTMIterator nl)  {    m_contextNodeLists.push(nl);  }  /**   * Pop the current context node list.   * @xsl.usage internal   */  public final void popContextNodeList()  {  	if(m_contextNodeLists.isEmpty())  	  System.err.println("Warning: popContextNodeList when stack is empty!");  	else      m_contextNodeLists.pop();  }  /**   * The ammount to use for stacks that record information during the    * recursive execution.   */  public static final int RECURSIONLIMIT = (1024*4);  /** The stack of <a href="http://www.w3.org/TR/xslt#dt-current-node">current node</a> objects.   *  Not to be confused with the current node list.  %REVIEW% Note that there    *  are no bounds check and resize for this stack, so if it is blown, it's all    *  over.  */  private IntStack m_currentNodes = new IntStack(RECURSIONLIMIT);   //  private NodeVector m_currentNodes = new NodeVector();    public IntStack getCurrentNodeStack() {return m_currentNodes; }  public void setCurrentNodeStack(IntStack nv) { m_currentNodes = nv; }  /**   * Get the current context node.   *   * @return the <a href="http://www.w3.org/TR/xslt#dt-current-node">current node</a>.   */  public final int getCurrentNode()  {    return m_currentNodes.peek();  }    /**   * Set the current context node and expression node.   *   * @param cn the <a href="http://www.w3.org/TR/xslt#dt-current-node">current node</a>.   * @param en the sub-expression context node.   */  public final void pushCurrentNodeAndExpression(int cn, int en)  {    m_currentNodes.push(cn);    m_currentExpressionNodes.push(cn);  }  /**   * Set the current context node.   */  public final void popCurrentNodeAndExpression()  {    m_currentNodes.quickPop(1);    m_currentExpressionNodes.quickPop(1);  }    /**   * Push the current context node, expression node, and prefix resolver.   *   * @param cn the <a href="http://www.w3.org/TR/xslt#dt-current-node">current node</a>.   * @param en the sub-expression context node.   * @param nc the namespace context (prefix resolver.   */  public final void pushExpressionState(int cn, int en, PrefixResolver nc)  {    m_currentNodes.push(cn);    m_currentExpressionNodes.push(cn);    m_prefixResolvers.push(nc);  }    /**   * Pop the current context node, expression node, and prefix resolver.   */  public final void popExpressionState()  {    m_currentNodes.quickPop(1);    m_currentExpressionNodes.quickPop(1);    m_prefixResolvers.pop();  }  /**   * Set the current context node.   *   * @param n the <a href="http://www.w3.org/TR/xslt#dt-current-node">current node</a>.   */  public final void pushCurrentNode(int n)  {    m_currentNodes.push(n);  }    /**   * Pop the current context node.   */  public final void popCurrentNode()  {    m_currentNodes.quickPop(1);  }    /**   * Set the current predicate root.   */  public final void pushPredicateRoot(int n)  {    m_predicateRoots.push(n);  }  /**   * Pop the current predicate root.   */  public final void popPredicateRoot()  {    m_predicateRoots.popQuick();  }  /**   * Get the current predicate root.   */  public final int getPredicateRoot()  {    return m_predicateRoots.peepOrNull();  }    /**   * Set the current location path iterator root.   */  public final void pushIteratorRoot(int n)  {    m_iteratorRoots.push(n);  }  /**   * Pop the current location path iterator root.   */  public final void popIteratorRoot()  {    m_iteratorRoots.popQuick();  }  /**   * Get the current location path iterator root.   */  public final int getIteratorRoot()  {    return m_iteratorRoots.peepOrNull();  }    /** A stack of the current sub-expression nodes.  */  private NodeVector m_iteratorRoots = new NodeVector();  /** A stack of the current sub-expression nodes.  */  private NodeVector m_predicateRoots = new NodeVector();  /** A stack of the current sub-expression nodes.  */  private IntStack m_currentExpressionNodes = new IntStack(RECURSIONLIMIT);         public IntStack getCurrentExpressionNodeStack() { return m_currentExpressionNodes; }  public void setCurrentExpressionNodeStack(IntStack nv) { m_currentExpressionNodes = nv; }    private IntStack m_predicatePos = new IntStack();    public final int getPredicatePos()  {    return m_predicatePos.peek();  }  public final void pushPredicatePos(int n)  {    m_predicatePos.push(n);  }  public final void popPredicatePos()  {    m_predicatePos.pop();  }  /**   * Get the current node that is the expression's context (i.e. for current() support).   *   * @return The current sub-expression node.   */  public final int getCurrentExpressionNode()  {    return m_currentExpressionNodes.peek();  }  /**   * Set the current node that is the expression's context (i.e. for current() support).   *   * @param n The sub-expression node to be current.   */  public final void pushCurrentExpressionNode(int n)  {    m_currentExpressionNodes.push(n);  }  /**   * Pop the current node that is the expression's context    * (i.e. for current() support).   */  public final void popCurrentExpressionNode()  {    m_currentExpressionNodes.quickPop(1);  }    private ObjectStack m_prefixResolvers                                    = new ObjectStack(RECURSIONLIMIT);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -