xmlstring.java

来自「java jdk 1.4的源码」· Java 代码 · 共 712 行 · 第 1/3 页

JAVA
712
字号
/* * The Apache Software License, Version 1.1 * * * Copyright (c) 1999 The Apache Software Foundation.  All rights  * reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer.  * * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. * * 3. The end-user documentation included with the redistribution, *    if any, must include the following acknowledgment:   *       "This product includes software developed by the *        Apache Software Foundation (http://www.apache.org/)." *    Alternately, this acknowledgment may appear in the software itself, *    if and wherever such third-party acknowledgments normally appear. * * 4. The names "Xalan" and "Apache Software Foundation" must *    not be used to endorse or promote products derived from this *    software without prior written permission. For written  *    permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", *    nor may "Apache" appear in their name, without prior written *    permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Software Foundation and was * originally based on software copyright (c) 1999, Lotus * Development Corporation., http://www.lotus.com.  For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */package org.apache.xml.utils;import java.util.Locale;/** * This class is meant to be an interface to character strings, whether they * be java Strings or <code>org.apache.xml.utils.FastStringBuffer</code>s, or * other character data.  By using XMLString, character copies can be reduced * in the XML pipeline. */public interface XMLString{  /**   * 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 abstract void dispatchCharactersEvents(org.xml.sax.ContentHandler ch)    throws org.xml.sax.SAXException;  /**   * 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 abstract void dispatchAsComment(org.xml.sax.ext.LexicalHandler lh)    throws org.xml.sax.SAXException;      /**   * Conditionally trim all leading and trailing whitespace in the specified String.   * All strings of white space are   * replaced by a single space character (#x20), except spaces after punctuation which   * receive double spaces if doublePunctuationSpaces is true.   * This function may be useful to a formatter, but to get first class   * results, the formatter should probably do it's own white space handling   * based on the semantics of the formatting object.   *    * @param   trimHead    Trim leading whitespace?   * @param   trimTail    Trim trailing whitespace?   * @param   doublePunctuationSpaces    Use double spaces for punctuation?   * @return              The trimmed string.   */  public XMLString fixWhiteSpace(boolean trimHead,                                 boolean trimTail,                                 boolean doublePunctuationSpaces);  /**   * Returns the length of this string.   *   * @return  the length of the sequence of characters represented by this   *          object.   */  public abstract int 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 abstract char charAt(int index);  /**   * 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 abstract void getChars(int srcBegin, int srcEnd, char dst[],                                int dstBegin);                                  /**   * Compares this string to the specified object.   * The result is <code>true</code> if and only if the argument is not   * <code>null</code> and is a <code>String</code> object that represents   * the same sequence of characters as this object.   *   * @param   anObject   the object to compare this <code>String</code>   *                     against.   * @return  <code>true</code> if the <code>String </code>are equal;   *          <code>false</code> otherwise.   * @see     java.lang.String#compareTo(java.lang.String)   * @see     java.lang.String#equalsIgnoreCase(java.lang.String)   */  public abstract boolean equals(XMLString anObject);  /**   * Compares this string to the specified object.   * The result is <code>true</code> if and only if the argument is not   * <code>null</code> and is a <code>String</code> object that represents   * the same sequence of characters as this object.   *   * @param   anObject   the object to compare this <code>String</code>   *                     against.   * @return  <code>true</code> if the <code>String </code>are equal;   *          <code>false</code> otherwise.   * @see     java.lang.String#compareTo(java.lang.String)   * @see     java.lang.String#equalsIgnoreCase(java.lang.String)   */  public abstract boolean equals(Object anObject);  /**   * Compares this <code>String</code> to another <code>String</code>,   * ignoring case considerations.  Two strings are considered equal   * ignoring case if they are of the same length, and corresponding   * characters in the two strings are equal ignoring case.   *   * @param   anotherString   the <code>String</code> to compare this   *                          <code>String</code> against.   * @return  <code>true</code> if the argument is not <code>null</code>   *          and the <code>String</code>s are equal,   *          ignoring case; <code>false</code> otherwise.   * @see     #equals(Object)   * @see     java.lang.Character#toLowerCase(char)   * @see java.lang.Character#toUpperCase(char)   */  public abstract boolean equalsIgnoreCase(String anotherString);  /**   * Compares two strings lexicographically.   *   * @param   anotherString   the <code>String</code> to be compared.   * @return  the value <code>0</code> if the argument string is equal to   *          this string; a value less than <code>0</code> if this string   *          is lexicographically less than the string argument; and a   *          value greater than <code>0</code> if this string is   *          lexicographically greater than the string argument.   * @exception java.lang.NullPointerException if <code>anotherString</code>   *          is <code>null</code>.   */  public abstract int compareTo(XMLString anotherString);  /**   * Compares two strings lexicographically, ignoring case considerations.   * This method returns an integer whose sign is that of   * <code>this.toUpperCase().toLowerCase().compareTo(   * str.toUpperCase().toLowerCase())</code>.   * <p>   * Note that this method does <em>not</em> take locale into account,   * and will result in an unsatisfactory ordering for certain locales.   * The java.text package provides <em>collators</em> to allow   * locale-sensitive ordering.   *   * @param   str   the <code>String</code> to be compared.   * @return  a negative integer, zero, or a positive integer as the   *          the specified String is greater than, equal to, or less   *          than this String, ignoring case considerations.   * @see     java.text.Collator#compare(String, String)

⌨️ 快捷键说明

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