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

📄 expression.java

📁 java1.6众多例子参考
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
   *   * @param xctxt The XPath runtime context.   * NEEDSDOC @param handler   *   * @return The result of the expression in the form of a <code>XObject</code>.   *   * @throws javax.xml.transform.TransformerException if a runtime exception   *         occurs.   * @throws org.xml.sax.SAXException   */  public void executeCharsToContentHandler(          XPathContext xctxt, ContentHandler handler)            throws javax.xml.transform.TransformerException,                   org.xml.sax.SAXException  {    XObject obj = execute(xctxt);    obj.dispatchCharactersEvents(handler);    obj.detach();  }  /**   * Tell if this expression returns a stable number that will not change during    * iterations within the expression.  This is used to determine if a proximity    * position predicate can indicate that no more searching has to occur.   *    *   * @return true if the expression represents a stable number.   */  public boolean isStableNumber()  {    return false;  }  /**   * This function is used to fixup variables from QNames to stack frame   * indexes at stylesheet build time.   * @param vars List of QNames that correspond to variables.  This list   * should be searched backwards for the first qualified name that   * corresponds to the variable reference qname.  The position of the   * QName in the vector from the start of the vector will be its position   * in the stack frame (but variables above the globalsTop value will need   * to be offset to the current stack frame).   * NEEDSDOC @param globalsSize   */  public abstract void fixupVariables(java.util.Vector vars, int globalsSize);    /**   * Compare this object with another object and see    * if they are equal, include the sub heararchy.   *    * @param expr Another expression object.   * @return true if this objects class and the expr   * object's class are the same, and the data contained    * within both objects are considered equal.   */  public abstract boolean deepEquals(Expression expr);    /**   * This is a utility method to tell if the passed in    * class is the same class as this.  It is to be used by   * the deepEquals method.  I'm bottlenecking it here    * because I'm not totally confident that comparing the    * class objects is the best way to do this.   * @return true of the passed in class is the exact same    * class as this class.   */  protected final boolean isSameClass(Expression expr)  {  	if(null == expr)  	  return false;  	    	return (getClass() == expr.getClass());  }  /**   * Warn the user of an problem.   *   * @param xctxt The XPath runtime context.   * @param msg An error msgkey that corresponds to one of the conststants found   *            in {@link com.sun.org.apache.xpath.internal.res.XPATHErrorResources}, which is   *            a key for a format string.   * @param args An array of arguments represented in the format string, which   *             may be null.   *   * @throws TransformerException if the current ErrorListoner determines to   *                              throw an exception.   *   * @throws javax.xml.transform.TransformerException   */  public void warn(XPathContext xctxt, String msg, Object[] args)          throws javax.xml.transform.TransformerException  {    java.lang.String fmsg = XSLMessages.createXPATHWarning(msg, args);    if (null != xctxt)    {      ErrorListener eh = xctxt.getErrorListener();      // TO DO: Need to get stylesheet Locator from here.      eh.warning(new TransformerException(fmsg, xctxt.getSAXLocator()));    }  }  /**   * Tell the user of an assertion error, and probably throw an   * exception.   *   * @param b  If false, a runtime exception will be thrown.   * @param msg The assertion message, which should be informative.   *   * @throws RuntimeException if the b argument is false.   *   * @throws javax.xml.transform.TransformerException   */  public void assertion(boolean b, java.lang.String msg)  {    if (!b)    {      java.lang.String fMsg = XSLMessages.createXPATHMessage(        XPATHErrorResources.ER_INCORRECT_PROGRAMMER_ASSERTION,        new Object[]{ msg });      throw new RuntimeException(fMsg);    }  }  /**   * Tell the user of an error, and probably throw an   * exception.   *   * @param xctxt The XPath runtime context.   * @param msg An error msgkey that corresponds to one of the constants found   *            in {@link com.sun.org.apache.xpath.internal.res.XPATHErrorResources}, which is   *            a key for a format string.   * @param args An array of arguments represented in the format string, which   *             may be null.   *   * @throws TransformerException if the current ErrorListoner determines to   *                              throw an exception.   *   * @throws javax.xml.transform.TransformerException   */  public void error(XPathContext xctxt, String msg, Object[] args)          throws javax.xml.transform.TransformerException  {    java.lang.String fmsg = XSLMessages.createXPATHMessage(msg, args);    if (null != xctxt)    {      ErrorListener eh = xctxt.getErrorListener();      TransformerException te = new TransformerException(fmsg, this);      eh.fatalError(te);    }  }    /**   * Get the first non-Expression parent of this node.   * @return null or first ancestor that is not an Expression.   */  public ExpressionNode getExpressionOwner()  {  	ExpressionNode parent = exprGetParent();  	while((null != parent) && (parent instanceof Expression))  		parent = parent.exprGetParent();  	return parent;  }    //=============== ExpressionNode methods ================    /** This pair of methods are used to inform the node of its    parent. */  public void exprSetParent(ExpressionNode n)  {  	assertion(n != this, "Can not parent an expression to itself!");  	m_parent = n;  }    public ExpressionNode exprGetParent()  {  	return m_parent;  }  /** This method tells the node to add its argument to the node's    list of children.  */  public void exprAddChild(ExpressionNode n, int i)  {  	assertion(false, "exprAddChild method not implemented!");  }  /** This method returns a child node.  The children are numbered     from zero, left to right. */  public ExpressionNode exprGetChild(int i)  {  	return null;  }  /** Return the number of children the node has. */  public int exprGetNumChildren()  {  	return 0;  }    //=============== SourceLocator methods ================  /**   * Return the public identifier for the current document event.   *   * <p>The return value is the public identifier of the document   * entity or of the external parsed entity in which the markup that   * triggered the event appears.</p>   *   * @return A string containing the public identifier, or   *         null if none is available.   * @see #getSystemId   */  public String getPublicId()  {  	if(null == m_parent)  	  return null;  	return m_parent.getPublicId();  }  /**   * Return the system identifier for the current document event.   *   * <p>The return value is the system identifier of the document   * entity or of the external parsed entity in which the markup that   * triggered the event appears.</p>   *   * <p>If the system identifier is a URL, the parser must resolve it   * fully before passing it to the application.</p>   *   * @return A string containing the system identifier, or null   *         if none is available.   * @see #getPublicId   */  public String getSystemId()  {  	if(null == m_parent)  	  return null;  	return m_parent.getSystemId();  }  /**   * Return the line number where the current document event ends.   *   * <p><strong>Warning:</strong> The return value from the method   * is intended only as an approximation for the sake of error   * reporting; it is not intended to provide sufficient information   * to edit the character content of the original XML document.</p>   *   * <p>The return value is an approximation of the line number   * in the document entity or external parsed entity where the   * markup that triggered the event appears.</p>   *   * @return The line number, or -1 if none is available.   * @see #getColumnNumber   */  public int getLineNumber()  {  	if(null == m_parent)  	  return 0;  	return m_parent.getLineNumber();  }  /**   * Return the character position where the current document event ends.   *   * <p><strong>Warning:</strong> The return value from the method   * is intended only as an approximation for the sake of error   * reporting; it is not intended to provide sufficient information   * to edit the character content of the original XML document.</p>   *   * <p>The return value is an approximation of the column number   * in the document entity or external parsed entity where the   * markup that triggered the event appears.</p>   *   * @return The column number, or -1 if none is available.   * @see #getLineNumber   */  public int getColumnNumber()  {  	if(null == m_parent)  	  return 0;  	return m_parent.getColumnNumber();  }}

⌨️ 快捷键说明

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