org.apache.xpath.objects

## Class XStringForChars

- java.lang.Object
- - org.apache.xpath.Expression
  - - org.apache.xpath.objects.XObject
    - - org.apache.xpath.objects.XString
      - - org.apache.xpath.objects.XStringForChars

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable, SourceLocator, XMLString, ExpressionNode, XPathVisitable

    public class XStringForChars
    extends XString

This class will wrap a FastStringBuffer and allow for

See Also:
  Serialized Form

### Field Summary

### 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`

### Constructor Summary

Constructors
Constructor and Description
`XStringForChars(char[] val, int start, int length)` Construct a XNodeSet object.

### Method Summary

Methods
`void` `appendToFsb(FastStringBuffer fsb)` Cast result object to a string.
`char` `charAt(int index)` Returns the character at the specified index.
`void` `dispatchAsComment(LexicalHandler lh)` Directly call the comment method on the passed LexicalHandler for the string-value.
`void` `dispatchCharactersEvents(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, execute, fixupVariables, getFresh, greaterThan, greaterThanOrEqual, iter, lessThan, lessThanOrEqual, mutableNodeset, nodelist, nodeset, notEquals, numWithSideEffects, reset, rtf, rtree, rtree, 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, isStableNumber, num, warn, xstr`

### Methods inherited from class java.lang.Object

`getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.apache.xml.utils.XMLString

`toString`

### 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.

### 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(ContentHandler ch)
                                  throws 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:
  `SAXException`

#### dispatchAsComment

    public void dispatchAsComment(LexicalHandler lh)
                           throws 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:
  `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`