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

📄 xstringforchars.java

📁 java1.6众多例子参考
💻 JAVA
字号:
/* * Copyright 1999-2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * *     http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. *//* * $Id: XStringForChars.java,v 1.2.4.1 2005/09/14 20:46:27 jeffsuttor Exp $ */package com.sun.org.apache.xpath.internal.objects;import com.sun.org.apache.xalan.internal.res.XSLMessages;import com.sun.org.apache.xml.internal.utils.FastStringBuffer;import com.sun.org.apache.xpath.internal.res.XPATHErrorResources;/** * This class will wrap a FastStringBuffer and allow for */public class XStringForChars extends XString{    static final long serialVersionUID = -2235248887220850467L;  /** The start position in the fsb. */  int m_start;    /** The length of the string. */  int m_length;    protected String m_strCache = null;    /**   * Construct a XNodeSet object.   *   * @param val FastStringBuffer object this will wrap, must be non-null.   * @param start The start position in the array.   * @param length The number of characters to read from the array.   */  public XStringForChars(char[] val, int start, int length)  {    super(val);    m_start = start;    m_length = length;    if(null == val)      throw new IllegalArgumentException(                          XSLMessages.createXPATHMessage(XPATHErrorResources.ER_FASTSTRINGBUFFER_CANNOT_BE_NULL, null)); //"The FastStringBuffer argument can not be null!!");  }  /**   * Construct a XNodeSet object.   *   * @param val String object this will wrap.   */  private XStringForChars(String val)  {    super(val);    throw new IllegalArgumentException(                      XSLMessages.createXPATHMessage(XPATHErrorResources.ER_XSTRINGFORCHARS_CANNOT_TAKE_STRING, null)); //"XStringForChars can not take a string for an argument!");  }    /**   * Cast result object to a string.   *   * @return The string this wraps or the empty string if null   */  public FastStringBuffer fsb()  {    throw new RuntimeException(XSLMessages.createXPATHMessage(XPATHErrorResources.ER_FSB_NOT_SUPPORTED_XSTRINGFORCHARS, null)); //"fsb() not supported for XStringForChars!");  }    /**   * Cast result object to a string.   *   * @return The string this wraps or the empty string if null   */  public void appendToFsb(com.sun.org.apache.xml.internal.utils.FastStringBuffer fsb)  {    fsb.append((char[])m_obj, m_start, m_length);  }    /**   * Tell if this object contains a java String object.   *    * @return true if this XMLString can return a string without creating one.   */  public boolean hasString()  {    return (null != m_strCache);  }    /**   * Cast result object to a string.   *   * @return The string this wraps or the empty string if null   */  public String str()  {    if(null == m_strCache)      m_strCache = new String((char[])m_obj, m_start, m_length);        return m_strCache;  }    /**   * Since this object is incomplete without the length and the offset, we    * have to convert to a string when this function is called.   *   * @return The java String representation of this object.   */  public Object object()  {    return str();  }  /**   * Directly call the   * characters method on the passed ContentHandler for the   * string-value. Multiple calls to the   * ContentHandler's characters methods may well occur for a single call to   * this method.   *   * @param ch A non-null reference to a ContentHandler.   *   * @throws org.xml.sax.SAXException   */  public void dispatchCharactersEvents(org.xml.sax.ContentHandler ch)      throws org.xml.sax.SAXException  {    ch.characters((char[])m_obj, m_start, m_length);  }        /**   * Directly call the   * comment method on the passed LexicalHandler for the   * string-value.   *   * @param lh A non-null reference to a LexicalHandler.   *   * @throws org.xml.sax.SAXException   */  public void dispatchAsComment(org.xml.sax.ext.LexicalHandler lh)      throws org.xml.sax.SAXException  {    lh.comment((char[])m_obj, m_start, m_length);  }    /**   * Returns the length of this string.   *   * @return  the length of the sequence of characters represented by this   *          object.   */  public int length()  {    return m_length;  }  /**   * Returns the character at the specified index. An index ranges   * from <code>0</code> to <code>length() - 1</code>. The first character   * of the sequence is at index <code>0</code>, the next at index   * <code>1</code>, and so on, as for array indexing.   *   * @param      index   the index of the character.   * @return     the character at the specified index of this string.   *             The first character is at index <code>0</code>.   * @exception  IndexOutOfBoundsException  if the <code>index</code>   *             argument is negative or not less than the length of this   *             string.   */  public char charAt(int index)  {    return ((char[])m_obj)[index+m_start];  }  /**   * Copies characters from this string into the destination character   * array.   *   * @param      srcBegin   index of the first character in the string   *                        to copy.   * @param      srcEnd     index after the last character in the string   *                        to copy.   * @param      dst        the destination array.   * @param      dstBegin   the start offset in the destination array.   * @exception IndexOutOfBoundsException If any of the following   *            is true:   *            <ul><li><code>srcBegin</code> is negative.   *            <li><code>srcBegin</code> is greater than <code>srcEnd</code>   *            <li><code>srcEnd</code> is greater than the length of this   *                string   *            <li><code>dstBegin</code> is negative   *            <li><code>dstBegin+(srcEnd-srcBegin)</code> is larger than   *                <code>dst.length</code></ul>   * @exception NullPointerException if <code>dst</code> is <code>null</code>   */  public void getChars(int srcBegin, int srcEnd, char dst[], int dstBegin)  {    System.arraycopy((char[])m_obj, m_start+srcBegin, dst, dstBegin, srcEnd);  }  }

⌨️ 快捷键说明

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