Methods Summary |
---|
public boolean | bool()Cast result object to a boolean.
return str().length() > 0;
|
public void | callVisitors(com.sun.org.apache.xpath.internal.ExpressionOwner owner, com.sun.org.apache.xpath.internal.XPathVisitor visitor)
visitor.visitStringLiteral(owner, this);
|
public char | charAt(int index)Returns the character at the specified index. An index ranges
from 0 to length() - 1 . The first character
of the sequence is at index 0 , the next at index
1 , and so on, as for array indexing.
return str().charAt(index);
|
public int | compareTo(com.sun.org.apache.xml.internal.utils.XMLString xstr)Compares two strings lexicographically.
int len1 = this.length();
int len2 = xstr.length();
int n = Math.min(len1, len2);
int i = 0;
int j = 0;
while (n-- != 0)
{
char c1 = this.charAt(i);
char c2 = xstr.charAt(j);
if (c1 != c2)
{
return c1 - c2;
}
i++;
j++;
}
return len1 - len2;
|
public int | compareToIgnoreCase(com.sun.org.apache.xml.internal.utils.XMLString str)Compares two strings lexicographically, ignoring case considerations.
This method returns an integer whose sign is that of
this.toUpperCase().toLowerCase().compareTo(
str.toUpperCase().toLowerCase()) .
Note that this method does not take locale into account,
and will result in an unsatisfactory ordering for certain locales.
The java.text package provides collators to allow
locale-sensitive ordering.
// %REVIEW% Like it says, @since 1.2. Doesn't exist in earlier
// versions of Java, hence we can't yet shell out to it. We can implement
// it as character-by-character compare, but doing so efficiently
// is likely to be (ahem) interesting.
//
// However, since nobody is actually _using_ this method yet:
// return str().compareToIgnoreCase(str.toString());
throw new com.sun.org.apache.xml.internal.utils.WrappedRuntimeException(
new java.lang.NoSuchMethodException(
"Java 1.2 method, not yet implemented"));
|
public com.sun.org.apache.xml.internal.utils.XMLString | concat(java.lang.String str)Concatenates the specified string to the end of this string.
// %REVIEW% Make an FSB here?
return new XString(str().concat(str));
|
public void | dispatchAsComment(org.xml.sax.ext.LexicalHandler lh)Directly call the
comment method on the passed LexicalHandler for the
string-value.
String str = str();
lh.comment(str.toCharArray(), 0, str.length());
|
public void | dispatchCharactersEvents(org.xml.sax.ContentHandler ch)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.
String str = str();
ch.characters(str.toCharArray(), 0, str.length());
|
public boolean | endsWith(java.lang.String suffix)Tests if this string ends with the specified suffix.
return str().endsWith(suffix);
|
public boolean | equals(com.sun.org.apache.xpath.internal.objects.XObject obj2)Tell if two objects are functionally equal.
// In order to handle the 'all' semantics of
// nodeset comparisons, we always call the
// nodeset function.
int t = obj2.getType();
try
{
if (XObject.CLASS_NODESET == t)
return obj2.equals(this);
// If at least one object to be compared is a boolean, then each object
// to be compared is converted to a boolean as if by applying the
// boolean function.
else if(XObject.CLASS_BOOLEAN == t)
return obj2.bool() == bool();
// Otherwise, if at least one object to be compared is a number, then each object
// to be compared is converted to a number as if by applying the number function.
else if(XObject.CLASS_NUMBER == t)
return obj2.num() == num();
}
catch(javax.xml.transform.TransformerException te)
{
throw new com.sun.org.apache.xml.internal.utils.WrappedRuntimeException(te);
}
// Otherwise, both objects to be compared are converted to strings as
// if by applying the string function.
return xstr().equals(obj2.xstr());
|
public boolean | equals(com.sun.org.apache.xml.internal.utils.XMLString obj2)Compares this string to the specified object.
The result is true if and only if the argument is not
null and is a String object that represents
the same sequence of characters as this object.
if (!obj2.hasString())
return obj2.equals(this);
else
return str().equals(obj2.toString());
|
public boolean | equals(java.lang.Object obj2)Compares this string to the specified object.
The result is true if and only if the argument is not
null and is a String object that represents
the same sequence of characters as this object.
if (null == obj2)
return false;
// In order to handle the 'all' semantics of
// nodeset comparisons, we always call the
// nodeset function.
else if (obj2 instanceof XNodeSet)
return obj2.equals(this);
else if(obj2 instanceof XNumber)
return obj2.equals(this);
else
return str().equals(obj2.toString());
|
public boolean | equalsIgnoreCase(java.lang.String anotherString)Compares this String to another String ,
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.
return str().equalsIgnoreCase(anotherString);
|
public com.sun.org.apache.xml.internal.utils.XMLString | fixWhiteSpace(boolean trimHead, boolean trimTail, boolean doublePunctuationSpaces)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.
// %OPT% !!!!!!!
int len = this.length();
char[] buf = new char[len];
this.getChars(0, len, buf, 0);
boolean edit = false;
int s;
for (s = 0; s < len; s++)
{
if (isSpace(buf[s]))
{
break;
}
}
/* replace S to ' '. and ' '+ -> single ' '. */
int d = s;
boolean pres = false;
for (; s < len; s++)
{
char c = buf[s];
if (isSpace(c))
{
if (!pres)
{
if (' " != c)
{
edit = true;
}
buf[d++] = ' ";
if (doublePunctuationSpaces && (s != 0))
{
char prevChar = buf[s - 1];
if (!((prevChar == '.") || (prevChar == '!")
|| (prevChar == '?")))
{
pres = true;
}
}
else
{
pres = true;
}
}
else
{
edit = true;
pres = true;
}
}
else
{
buf[d++] = c;
pres = false;
}
}
if (trimTail && 1 <= d && ' " == buf[d - 1])
{
edit = true;
d--;
}
int start = 0;
if (trimHead && 0 < d && ' " == buf[0])
{
edit = true;
start++;
}
XMLStringFactory xsf = XMLStringFactoryImpl.getFactory();
return edit ? xsf.newstr(new String(buf, start, d - start)) : this;
|
public void | getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)Copies characters from this string into the destination character
array.
str().getChars(srcBegin, srcEnd, dst, dstBegin);
|
public int | getType()Tell that this is a CLASS_STRING.
return CLASS_STRING;
|
public java.lang.String | getTypeString()Given a request type, return the equivalent string.
For diagnostic purposes.
return "#STRING";
|
public boolean | hasString()Tell if this object contains a java String object.
return true;
|
public int | hashCode()Returns a hashcode for this string. The hashcode for a
String object is computed as
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
using int arithmetic, where s[i] is the
ith character of the string, n is the length of
the string, and ^ indicates exponentiation.
(The hash value of the empty string is zero.)
return str().hashCode();
|
public int | indexOf(int ch)Returns the index within this string of the first occurrence of the
specified character. If a character with value ch occurs
in the character sequence represented by this String
object, then the index of the first such occurrence is returned --
that is, the smallest value k such that:
this.charAt(k) == ch
is true . If no such character occurs in this string,
then -1 is returned.
return str().indexOf(ch);
|
public int | indexOf(int ch, int fromIndex)Returns the index within this string of the first occurrence of the
specified character, starting the search at the specified index.
If a character with value ch occurs in the character
sequence represented by this String object at an index
no smaller than fromIndex , then the index of the first
such occurrence is returned--that is, the smallest value k
such that:
(this.charAt(k) == ch) && (k >= fromIndex)
is true. If no such character occurs in this string at or after
position fromIndex , then -1 is returned.
There is no restriction on the value of fromIndex . If it
is negative, it has the same effect as if it were zero: this entire
string may be searched. If it is greater than the length of this
string, it has the same effect as if it were equal to the length of
this string: -1 is returned.
return str().indexOf(ch, fromIndex);
|
public int | indexOf(java.lang.String str)Returns the index within this string of the first occurrence of the
specified substring. The integer returned is the smallest value
k such that:
this.startsWith(str, k)
is true .
return str().indexOf(str);
|
public int | indexOf(com.sun.org.apache.xml.internal.utils.XMLString str)Returns the index within this string of the first occurrence of the
specified substring. The integer returned is the smallest value
k such that:
this.startsWith(str, k)
is true .
return str().indexOf(str.toString());
|
public int | indexOf(java.lang.String str, int fromIndex)Returns the index within this string of the first occurrence of the
specified substring, starting at the specified index. The integer
returned is the smallest value k such that:
this.startsWith(str, k) && (k >= fromIndex)
is true .
There is no restriction on the value of fromIndex . If
it is negative, it has the same effect as if it were zero: this entire
string may be searched. If it is greater than the length of this
string, it has the same effect as if it were equal to the length of
this string: -1 is returned.
return str().indexOf(str, fromIndex);
|
private static boolean | isSpace(char ch)Returns whether the specified ch conforms to the XML 1.0 definition
of whitespace. Refer to
the definition of S for details.
return XMLCharacterRecognizer.isWhiteSpace(ch); // Take the easy way out for now.
|
public int | lastIndexOf(int ch)Returns the index within this string of the last occurrence of the
specified character. That is, the index returned is the largest
value k such that:
this.charAt(k) == ch
is true.
The String is searched backwards starting at the last character.
return str().lastIndexOf(ch);
|
public int | lastIndexOf(int ch, int fromIndex)Returns the index within this string of the last occurrence of the
specified character, searching backward starting at the specified
index. That is, the index returned is the largest value k
such that:
this.charAt(k) == ch) && (k <= fromIndex)
is true.
return str().lastIndexOf(ch, fromIndex);
|
public int | lastIndexOf(java.lang.String str)Returns the index within this string of the rightmost occurrence
of the specified substring. The rightmost empty string "" is
considered to occur at the index value this.length() .
The returned index is the largest value k such that
this.startsWith(str, k)
is true.
return str().lastIndexOf(str);
|
public int | lastIndexOf(java.lang.String str, int fromIndex)Returns the index within this string of the last occurrence of
the specified substring.
return str().lastIndexOf(str, fromIndex);
|
public int | length()Returns the length of this string.
return str().length();
|
public double | num()Cast result object to a number.
return toDouble();
|
public int | rtf(com.sun.org.apache.xpath.internal.XPathContext support)Cast result object to a result tree fragment.
DTM frag = support.createDocumentFragment();
frag.appendTextChild(str());
return frag.getDocument();
|
public boolean | startsWith(java.lang.String prefix, int toffset)Tests if this string starts with the specified prefix beginning
a specified index.
return str().startsWith(prefix, toffset);
|
public boolean | startsWith(java.lang.String prefix)Tests if this string starts with the specified prefix.
return startsWith(prefix, 0);
|
public boolean | startsWith(com.sun.org.apache.xml.internal.utils.XMLString prefix, int toffset)Tests if this string starts with the specified prefix beginning
a specified index.
int to = toffset;
int tlim = this.length();
int po = 0;
int pc = prefix.length();
// Note: toffset might be near -1>>>1.
if ((toffset < 0) || (toffset > tlim - pc))
{
return false;
}
while (--pc >= 0)
{
if (this.charAt(to) != prefix.charAt(po))
{
return false;
}
to++;
po++;
}
return true;
|
public boolean | startsWith(com.sun.org.apache.xml.internal.utils.XMLString prefix)Tests if this string starts with the specified prefix.
return startsWith(prefix, 0);
|
public java.lang.String | str()Cast result object to a string.
return (null != m_obj) ? ((String) m_obj) : "";
|
public com.sun.org.apache.xml.internal.utils.XMLString | substring(int beginIndex)Returns a new string that is a substring of this string. The
substring begins with the character at the specified index and
extends to the end of this string.
Examples:
"unhappy".substring(2) returns "happy"
"Harbison".substring(3) returns "bison"
"emptiness".substring(9) returns "" (an empty string)
return new XString(str().substring(beginIndex));
|
public com.sun.org.apache.xml.internal.utils.XMLString | substring(int beginIndex, int endIndex)Returns a new string that is a substring of this string. The
substring begins at the specified beginIndex and
extends to the character at index endIndex - 1 .
Thus the length of the substring is endIndex-beginIndex .
return new XString(str().substring(beginIndex, endIndex));
|
public double | toDouble()Convert a string to a double -- Allowed input is in fixed
notation ddd.fff.
int end = length();
if(0 == end)
return Double.NaN;
double result = 0.0;
int start = 0;
int punctPos = end-1;
// Scan to first whitespace character.
for (int i = start; i < end; i++)
{
char c = charAt(i);
if (!XMLCharacterRecognizer.isWhiteSpace(c))
{
break;
}
else
start++;
}
double sign = 1.0;
if (start < end && charAt(start) == '-")
{
sign = -1.0;
start++;
}
int digitsFound = 0;
for (int i = start; i < end; i++) // parse the string from left to right converting the integer part
{
char c = charAt(i);
if (c != '.")
{
if (XMLCharacterRecognizer.isWhiteSpace(c))
break;
else if (Character.isDigit(c))
{
result = result * 10.0 + (c - 0x30);
digitsFound++;
}
else
{
return Double.NaN;
}
}
else
{
punctPos = i;
break;
}
}
if (charAt(punctPos) == '.") // parse the string from the end to the '.' converting the fractional part
{
double fractPart = 0.0;
for (int i = end - 1; i > punctPos; i--)
{
char c = charAt(i);
if (XMLCharacterRecognizer.isWhiteSpace(c))
break;
else if (Character.isDigit(c))
{
fractPart = fractPart / 10.0 + (c - 0x30);
digitsFound++;
}
else
{
return Double.NaN;
}
}
result += fractPart / 10.0;
}
if (0 == digitsFound)
return Double.NaN;
return result * sign;
|
public com.sun.org.apache.xml.internal.utils.XMLString | toLowerCase(java.util.Locale locale)Converts all of the characters in this String to lower
case using the rules of the given Locale .
return new XString(str().toLowerCase(locale));
|
public com.sun.org.apache.xml.internal.utils.XMLString | toLowerCase()Converts all of the characters in this String to lower
case using the rules of the default locale, which is returned
by Locale.getDefault .
return new XString(str().toLowerCase());
|
public com.sun.org.apache.xml.internal.utils.XMLString | toUpperCase(java.util.Locale locale)Converts all of the characters in this String to upper
case using the rules of the given locale.
return new XString(str().toUpperCase(locale));
|
public com.sun.org.apache.xml.internal.utils.XMLString | toUpperCase()Converts all of the characters in this String to upper
case using the rules of the default locale, which is returned
by Locale.getDefault .
If no character in this string has a different uppercase version,
based on calling the toUpperCase method defined by
Character , then the original string is returned.
Otherwise, this method creates a new String object
representing a character sequence identical in length to the
character sequence represented by this String object and
with every character equal to the result of applying the method
Character.toUpperCase to the corresponding character of
this String object.
Examples:
"Fahrvergngen".toUpperCase() returns "FAHRVERGNGEN"
"Visit Ljubinje!".toUpperCase() returns "VISIT LJUBINJE!"
return new XString(str().toUpperCase());
|
public com.sun.org.apache.xml.internal.utils.XMLString | trim()Removes white space from both ends of this string.
return new XString(str().trim());
|
public com.sun.org.apache.xml.internal.utils.XMLString | xstr()Cast result object to a string.
return this;
|