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;
}
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;
}
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);
}
}
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());
}
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;
}
Aggregations