Search in sources :

Example 16 with FastStringBuffer

use of org.apache.xml.utils.FastStringBuffer in project robovm by robovm.

the class XStringForFSB method equals.

/**
   * 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;
}
Also used : FastStringBuffer(org.apache.xml.utils.FastStringBuffer)

Example 17 with FastStringBuffer

use of org.apache.xml.utils.FastStringBuffer in project j2objc by google.

the class XStringForFSB method equals.

/**
   * Tell if two objects are functionally equal.
   *
   * @param anotherString Object to compare this to
   *
   * @return true if the two objects are equal
   *
   * @throws javax.xml.transform.TransformerException
   */
public boolean equals(String anotherString) {
    int n = m_length;
    if (n == anotherString.length()) {
        FastStringBuffer fsb = fsb();
        int i = m_start;
        int j = 0;
        while (n-- != 0) {
            if (fsb.charAt(i) != anotherString.charAt(j)) {
                return false;
            }
            i++;
            j++;
        }
        return true;
    }
    return false;
}
Also used : FastStringBuffer(org.apache.xml.utils.FastStringBuffer)

Example 18 with FastStringBuffer

use of org.apache.xml.utils.FastStringBuffer in project j2objc by google.

the class XStringForFSB method getChars.

/**
   * 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);
    }
}
Also used : FastStringBuffer(org.apache.xml.utils.FastStringBuffer)

Example 19 with FastStringBuffer

use of org.apache.xml.utils.FastStringBuffer in project j2objc by google.

the class DOM2DTM method getStringValue.

/**
   * Get the string-value of a node as a String object
   * (see http://www.w3.org/TR/xpath#data-model
   * for the definition of a node's string-value).
   *
   * @param nodeHandle The node ID.
   *
   * @return A string object that represents the string-value of the given node.
   */
public XMLString getStringValue(int nodeHandle) {
    int type = getNodeType(nodeHandle);
    Node node = getNode(nodeHandle);
    // directly.
    if (DTM.ELEMENT_NODE == type || DTM.DOCUMENT_NODE == type || DTM.DOCUMENT_FRAGMENT_NODE == type) {
        FastStringBuffer buf = StringBufferPool.get();
        String s;
        try {
            getNodeData(node, buf);
            s = (buf.length() > 0) ? buf.toString() : "";
        } finally {
            StringBufferPool.free(buf);
        }
        return m_xstrf.newstr(s);
    } else 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);
        }
        String s = (buf.length() > 0) ? buf.toString() : "";
        StringBufferPool.free(buf);
        return m_xstrf.newstr(s);
    } else
        return m_xstrf.newstr(node.getNodeValue());
}
Also used : FastStringBuffer(org.apache.xml.utils.FastStringBuffer) Node(org.w3c.dom.Node) XMLString(org.apache.xml.utils.XMLString)

Example 20 with FastStringBuffer

use of org.apache.xml.utils.FastStringBuffer in project j2objc by google.

the class DOM2DTM method getNodeValue.

/**
   * 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;
}
Also used : FastStringBuffer(org.apache.xml.utils.FastStringBuffer) Node(org.w3c.dom.Node) XMLString(org.apache.xml.utils.XMLString)

Aggregations

FastStringBuffer (org.apache.xml.utils.FastStringBuffer)35 Node (org.w3c.dom.Node)9 XMLString (org.apache.xml.utils.XMLString)8 QName (org.apache.xml.utils.QName)4 DecimalFormat (java.text.DecimalFormat)2 Locale (java.util.Locale)2 Vector (java.util.Vector)2 XMLStringFactory (org.apache.xml.utils.XMLStringFactory)2 CharArrayWrapper (org.apache.xml.utils.res.CharArrayWrapper)2 XResourceBundle (org.apache.xml.utils.res.XResourceBundle)2