org.apache.xpath.objects
Class XStringForChars

java.lang.Object
  extended by org.apache.xpath.Expression
      extended by org.apache.xpath.objects.XObject
          extended by org.apache.xpath.objects.XString
              extended by org.apache.xpath.objects.XStringForChars
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, javax.xml.transform.SourceLocator, XMLString, ExpressionNode, XPathVisitable

public class XStringForChars
extends XString

This class will wrap a FastStringBuffer and allow for

See Also:
Serialized Form

Field Summary
(package private)  int m_length
          The length of the string.
(package private)  int m_start
          The start position in the fsb.
protected  java.lang.String m_strCache
           
(package private) static long serialVersionUID
           
 
Fields inherited from class org.apache.xpath.objects.XString
EMPTYSTRING
 
Fields inherited from class org.apache.xpath.objects.XObject
CLASS_BOOLEAN, CLASS_NODESET, CLASS_NULL, CLASS_NUMBER, CLASS_RTREEFRAG, CLASS_STRING, CLASS_UNKNOWN, CLASS_UNRESOLVEDVARIABLE, m_obj
 
Constructor Summary
  XStringForChars(char[] val, int start, int length)
          Construct a XNodeSet object.
private XStringForChars(java.lang.String val)
          Construct a XNodeSet object.
 
Method Summary
 void appendToFsb(FastStringBuffer fsb)
          Cast result object to a string.
 char charAt(int index)
          Returns the character at the specified index.
 void dispatchAsComment(org.xml.sax.ext.LexicalHandler lh)
          Directly call the comment method on the passed LexicalHandler for the string-value.
 void dispatchCharactersEvents(org.xml.sax.ContentHandler ch)
          Directly call the characters method on the passed ContentHandler for the string-value.
 FastStringBuffer fsb()
          Cast result object to a string.
 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
          Copies characters from this string into the destination character array.
 boolean hasString()
          Tell if this object contains a java String object.
 int length()
          Returns the length of this string.
 java.lang.Object object()
          Since this object is incomplete without the length and the offset, we have to convert to a string when this function is called.
 java.lang.String str()
          Cast result object to a string.
 
Methods inherited from class org.apache.xpath.objects.XString
bool, callVisitors, compareTo, compareToIgnoreCase, concat, endsWith, equals, equals, equals, equals, equalsIgnoreCase, fixWhiteSpace, getType, getTypeString, hashCode, indexOf, indexOf, indexOf, indexOf, indexOf, lastIndexOf, lastIndexOf, lastIndexOf, lastIndexOf, num, rtf, startsWith, startsWith, startsWith, startsWith, substring, substring, toDouble, toLowerCase, toLowerCase, toUpperCase, toUpperCase, trim, xstr
 
Methods inherited from class org.apache.xpath.objects.XObject
allowDetachToRelease, boolWithSideEffects, castToType, create, create, deepEquals, destruct, detach, error, error, execute, fixupVariables, getFresh, greaterThan, greaterThanOrEqual, iter, lessThan, lessThanOrEqual, mutableNodeset, nodelist, nodeset, notEquals, numWithSideEffects, reset, rtf, rtree, rtree, setObject, toString
 
Methods inherited from class org.apache.xpath.Expression
asIterator, asIteratorRaw, asNode, assertion, bool, canTraverseOutsideSubtree, error, execute, execute, execute, executeCharsToContentHandler, exprAddChild, exprGetChild, exprGetNumChildren, exprGetParent, exprSetParent, getColumnNumber, getExpressionOwner, getLineNumber, getPublicId, getSystemId, isNodesetExpr, isSameClass, isStableNumber, num, warn, xstr
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.xml.utils.XMLString
toString
 

Field Detail

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

m_start

int m_start
The start position in the fsb.


m_length

int m_length
The length of the string.


m_strCache

protected java.lang.String m_strCache
Constructor Detail

XStringForChars

public XStringForChars(char[] val,
                       int start,
                       int length)
Construct a XNodeSet object.

Parameters:
val - FastStringBuffer object this will wrap, must be non-null.
start - The start position in the array.
length - The number of characters to read from the array.

XStringForChars

private XStringForChars(java.lang.String val)
Construct a XNodeSet object.

Parameters:
val - String object this will wrap.
Method Detail

fsb

public FastStringBuffer fsb()
Cast result object to a string.

Returns:
The string this wraps or the empty string if null

appendToFsb

public void appendToFsb(FastStringBuffer fsb)
Cast result object to a string.

Overrides:
appendToFsb in class XObject

hasString

public boolean hasString()
Tell if this object contains a java String object.

Specified by:
hasString in interface XMLString
Overrides:
hasString in class XString
Returns:
true if this XMLString can return a string without creating one.

str

public java.lang.String str()
Cast result object to a string.

Overrides:
str in class XString
Returns:
The string this wraps or the empty string if null

object

public java.lang.Object object()
Since this object is incomplete without the length and the offset, we have to convert to a string when this function is called.

Overrides:
object in class XObject
Returns:
The java String representation of this object.

dispatchCharactersEvents

public void dispatchCharactersEvents(org.xml.sax.ContentHandler ch)
                              throws org.xml.sax.SAXException
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.

Specified by:
dispatchCharactersEvents in interface XMLString
Overrides:
dispatchCharactersEvents in class XString
Parameters:
ch - A non-null reference to a ContentHandler.
Throws:
org.xml.sax.SAXException

dispatchAsComment

public void dispatchAsComment(org.xml.sax.ext.LexicalHandler lh)
                       throws org.xml.sax.SAXException
Directly call the comment method on the passed LexicalHandler for the string-value.

Specified by:
dispatchAsComment in interface XMLString
Overrides:
dispatchAsComment in class XString
Parameters:
lh - A non-null reference to a LexicalHandler.
Throws:
org.xml.sax.SAXException

length

public int length()
Returns the length of this string.

Specified by:
length in interface XMLString
Overrides:
length in class XString
Returns:
the length of the sequence of characters represented by this object.

charAt

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.

Specified by:
charAt in interface XMLString
Overrides:
charAt in class XString
Parameters:
index - the index of the character.
Returns:
the character at the specified index of this string. The first character is at index 0.
Throws:
java.lang.IndexOutOfBoundsException - if the index argument is negative or not less than the length of this string.

getChars

public void getChars(int srcBegin,
                     int srcEnd,
                     char[] dst,
                     int dstBegin)
Copies characters from this string into the destination character array.

Specified by:
getChars in interface XMLString
Overrides:
getChars in class XString
Parameters:
srcBegin - index of the first character in the string to copy.
srcEnd - index after the last character in the string to copy.
dst - the destination array.
dstBegin - the start offset in the destination array.
Throws:
java.lang.IndexOutOfBoundsException - If any of the following is true:
  • srcBegin is negative.
  • srcBegin is greater than srcEnd
  • srcEnd is greater than the length of this string
  • dstBegin is negative
  • dstBegin+(srcEnd-srcBegin) is larger than dst.length
java.lang.NullPointerException - if dst is null