当前位置: 首页>>代码示例>>Java>>正文


Java FastStringBuffer类代码示例

本文整理汇总了Java中com.sun.org.apache.xml.internal.utils.FastStringBuffer的典型用法代码示例。如果您正苦于以下问题:Java FastStringBuffer类的具体用法?Java FastStringBuffer怎么用?Java FastStringBuffer使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


FastStringBuffer类属于com.sun.org.apache.xml.internal.utils包,在下文中一共展示了FastStringBuffer类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: isWhitespace

import com.sun.org.apache.xml.internal.utils.FastStringBuffer; //导入依赖的package包/类
/**
 * Determine if the string-value of a node is whitespace
 *
 * @param nodeHandle The node Handle.
 *
 * @return Return true if the given node is whitespace.
 */
public boolean isWhitespace(int nodeHandle)
{
      int type = getNodeType(nodeHandle);
  Node node = getNode(nodeHandle);
      if(TEXT_NODE == type || CDATA_SECTION_NODE == type)
  {
    // If this is a DTM text node, it may be made of multiple DOM text
    // nodes -- including navigating into Entity References. DOM2DTM
    // records the first node in the sequence and requires that we
    // pick up the others when we retrieve the DTM node's value.
    //
    // %REVIEW% DOM Level 3 is expected to add a "whole text"
    // retrieval method which performs this function for us.
    FastStringBuffer buf = StringBufferPool.get();
    while(node!=null)
    {
      buf.append(node.getNodeValue());
      node=logicalNextDOMTextNode(node);
    }
   boolean b = buf.isWhitespace(0, buf.length());
    StringBufferPool.free(buf);
   return b;
  }
  return false;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:33,代码来源:DOM2DTM.java

示例2: getChars

import com.sun.org.apache.xml.internal.utils.FastStringBuffer; //导入依赖的package包/类
/**
 * 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)
{

  // %OPT% Need to call this on FSB when it is implemented.
  // %UNTESTED% (I don't think anyone calls this yet?)
  int n = srcEnd - srcBegin;

  if (n > m_length)
    n = m_length;

  if (n > (dst.length - dstBegin))
    n = (dst.length - dstBegin);

  int end = srcBegin + m_start + n;
  int d = dstBegin;
  FastStringBuffer fsb = fsb();

  for (int i = srcBegin + m_start; i < end; i++)
  {
    dst[d++] = fsb.charAt(i);
  }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:44,代码来源:XStringForFSB.java

示例3: getNodeData

import com.sun.org.apache.xml.internal.utils.FastStringBuffer; //导入依赖的package包/类
/**
 * Retrieve the text content of a DOM subtree, appending it into a
 * user-supplied FastStringBuffer object. Note that attributes are
 * not considered part of the content of an element.
 * <p>
 * There are open questions regarding whitespace stripping.
 * Currently we make no special effort in that regard, since the standard
 * DOM doesn't yet provide DTD-based information to distinguish
 * whitespace-in-element-context from genuine #PCDATA. Note that we
 * should probably also consider xml:space if/when we address this.
 * DOM Level 3 may solve the problem for us.
 * <p>
 * %REVIEW% Actually, since this method operates on the DOM side of the
 * fence rather than the DTM side, it SHOULDN'T do
 * any special handling. The DOM does what the DOM does; if you want
 * DTM-level abstractions, use DTM-level methods.
 *
 * @param node Node whose subtree is to be walked, gathering the
 * contents of all Text or CDATASection nodes.
 * @param buf FastStringBuffer into which the contents of the text
 * nodes are to be concatenated.
 */
protected static void getNodeData(Node node, FastStringBuffer buf)
{

  switch (node.getNodeType())
  {
  case Node.DOCUMENT_FRAGMENT_NODE :
  case Node.DOCUMENT_NODE :
  case Node.ELEMENT_NODE :
  {
    for (Node child = node.getFirstChild(); null != child;
            child = child.getNextSibling())
    {
      getNodeData(child, buf);
    }
  }
  break;
  case Node.TEXT_NODE :
  case Node.CDATA_SECTION_NODE :
  case Node.ATTRIBUTE_NODE :  // Never a child but might be our starting node
    buf.append(node.getNodeValue());
    break;
  case Node.PROCESSING_INSTRUCTION_NODE :
    // warning(XPATHErrorResources.WG_PARSING_AND_PREPARING);
    break;
  default :
    // ignore
    break;
  }
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:52,代码来源:DOM2DTM.java

示例4: getNodeValue

import com.sun.org.apache.xml.internal.utils.FastStringBuffer; //导入依赖的package包/类
/**
 * Given a node handle, return its node value. This is mostly
 * as defined by the DOM, but may ignore some conveniences.
 * <p>
 *
 * @param nodeHandle The node id.
 * @return String Value of this node, or null if not
 * meaningful for this node type.
 */
public String getNodeValue(int nodeHandle)
{
  // The _type(nodeHandle) call was taking the lion's share of our
  // time, and was wrong anyway since it wasn't coverting handle to
  // identity. Inlined it.
  int type = _exptype(makeNodeIdentity(nodeHandle));
  type=(NULL != type) ? getNodeType(nodeHandle) : NULL;

  if(TEXT_NODE!=type && CDATA_SECTION_NODE!=type)
    return getNode(nodeHandle).getNodeValue();

  // If this is a DTM text node, it may be made of multiple DOM text
  // nodes -- including navigating into Entity References. DOM2DTM
  // records the first node in the sequence and requires that we
  // pick up the others when we retrieve the DTM node's value.
  //
  // %REVIEW% DOM Level 3 is expected to add a "whole text"
  // retrieval method which performs this function for us.
  Node node = getNode(nodeHandle);
  Node n=logicalNextDOMTextNode(node);
  if(n==null)
    return node.getNodeValue();

  FastStringBuffer buf = StringBufferPool.get();
      buf.append(node.getNodeValue());
  while(n!=null)
  {
    buf.append(n.getNodeValue());
    n=logicalNextDOMTextNode(n);
  }
  String s = (buf.length() > 0) ? buf.toString() : "";
  StringBufferPool.free(buf);
  return s;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:44,代码来源:DOM2DTM.java

示例5: XStringForFSB

import com.sun.org.apache.xml.internal.utils.FastStringBuffer; //导入依赖的package包/类
/**
 * 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 XStringForFSB(FastStringBuffer 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));
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:20,代码来源:XStringForFSB.java

示例6: equals

import com.sun.org.apache.xml.internal.utils.FastStringBuffer; //导入依赖的package包/类
/**
 * 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   obj2       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 boolean equals(XMLString obj2)
{

  if (this == obj2)
  {
    return true;
  }

  int n = m_length;

  if (n == obj2.length())
  {
    FastStringBuffer fsb = fsb();
    int i = m_start;
    int j = 0;

    while (n-- != 0)
    {
      if (fsb.charAt(i) != obj2.charAt(j))
      {
        return false;
      }

      i++;
      j++;
    }

    return true;
  }

  return false;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:47,代码来源:XStringForFSB.java

示例7: compareTo

import com.sun.org.apache.xml.internal.utils.FastStringBuffer; //导入依赖的package包/类
/**
 * Compares two strings lexicographically.
 *
 * @param   xstr   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 int compareTo(XMLString xstr)
{

  int len1 = m_length;
  int len2 = xstr.length();
  int n = Math.min(len1, len2);
  FastStringBuffer fsb = fsb();
  int i = m_start;
  int j = 0;

  while (n-- != 0)
  {
    char c1 = fsb.charAt(i);
    char c2 = xstr.charAt(j);

    if (c1 != c2)
    {
      return c1 - c2;
    }

    i++;
    j++;
  }

  return len1 - len2;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:40,代码来源:XStringForFSB.java

示例8: compareToIgnoreCase

import com.sun.org.apache.xml.internal.utils.FastStringBuffer; //导入依赖的package包/类
/**
 * 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   xstr   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)
 * @since   1.2
 */
public int compareToIgnoreCase(XMLString xstr)
{

  int len1 = m_length;
  int len2 = xstr.length();
  int n = Math.min(len1, len2);
  FastStringBuffer fsb = fsb();
  int i = m_start;
  int j = 0;

  while (n-- != 0)
  {
    char c1 = Character.toLowerCase(fsb.charAt(i));
    char c2 = Character.toLowerCase(xstr.charAt(j));

    if (c1 != c2)
    {
      return c1 - c2;
    }

    i++;
    j++;
  }

  return len1 - len2;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:46,代码来源:XStringForFSB.java

示例9: startsWith

import com.sun.org.apache.xml.internal.utils.FastStringBuffer; //导入依赖的package包/类
/**
 * Tests if this string starts with the specified prefix beginning
 * a specified index.
 *
 * @param   prefix    the prefix.
 * @param   toffset   where to begin looking in the string.
 * @return  <code>true</code> if the character sequence represented by the
 *          argument is a prefix of the substring of this object starting
 *          at index <code>toffset</code>; <code>false</code> otherwise.
 *          The result is <code>false</code> if <code>toffset</code> is
 *          negative or greater than the length of this
 *          <code>String</code> object; otherwise the result is the same
 *          as the result of the expression
 *          <pre>
 *          this.subString(toffset).startsWith(prefix)
 *          </pre>
 * @exception java.lang.NullPointerException if <code>prefix</code> is
 *          <code>null</code>.
 */
public boolean startsWith(XMLString prefix, int toffset)
{

  FastStringBuffer fsb = fsb();
  int to = m_start + toffset;
  int tlim = m_start + m_length;
  int po = 0;
  int pc = prefix.length();

  // Note: toffset might be near -1>>>1.
  if ((toffset < 0) || (toffset > m_length - pc))
  {
    return false;
  }

  while (--pc >= 0)
  {
    if (fsb.charAt(to) != prefix.charAt(po))
    {
      return false;
    }

    to++;
    po++;
  }

  return true;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:48,代码来源:XStringForFSB.java


注:本文中的com.sun.org.apache.xml.internal.utils.FastStringBuffer类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。