Package nu.xom

# Class Text

java.lang.Object
nu.xom.Node
nu.xom.Text

public class Text extends Node

This class represents a run of text. CDATA sections are not treated differently than normal text. `Text` objects may be adjacent to other `Text` objects.

The maximum size of a String or an array in Java limits the maximum size of a text node to about 2 gigabytes. If you're stuffing Base-64 encoded movies inside one node, you will have problems. Try breaking up the text into smaller, contiguous chunks. Even then you will probably not be able to use XPath on the result.

Version:
  1.3.0
Author:
  Elliotte Rusty Harold

## Constructor Summary

Constructors
Constructor
Description
`Text(String data)`
This constructor creates a new `Text` object.
`Text(Text text)`
Creates a copy of the specified `Text` object.

## Method Summary

Modifier and Type
Method
Description
`Text`
`copy()`
Returns a deep copy of this `Text` with no parent, that can be added to this document or a different one.
`final Node`
`getChild(int position)`
Throws `IndexOutOfBoundsException` because texts do not have children.
`final int`
`getChildCount()`
Returns 0 because texts do not have children.
`final String`
`getValue()`
Returns the XPath 1.0 string-value of this `Text` node.
`void`
`setValue(String data)`
Sets the content of the `Text` object to the specified data.
`final String`
`toString()`
Returns a `String` representation of this `Text` suitable for debugging and diagnosis.
`final String`
`toXML()`
Returns a string containing the XML serialization of this text node.

### Methods inherited from class nu.xom.Node

`detach, equals, getBaseURI, getDocument, getParent, hashCode, query, query`

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

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

## Constructor Details

### Text

public Text(String data)

This constructor creates a new `Text` object. The data is checked for legality according to XML 1.0 rules. Characters that can be serialized by escaping them such as < and & are allowed. However, characters such as the form feed, null, vertical tab, unmatched halves of surrogate pairs, and 0xFFFE and 0xFFFF are not allowed.

Parameters:
  `data` - the initial text of the object
Throws:
  `IllegalCharacterDataException` - if data contains any characters which are illegal in well-formed XML 1.0 such as null, vertical tab, or unmatched halves of surrogate pairs

### Text

public Text(Text text)

Creates a copy of the specified `Text` object.

Parameters:
  `text` - the `Text` object to copy

## Method Details

### setValue

public void setValue(String data)

Sets the content of the `Text` object to the specified data. The data is checked for legality according to XML 1.0 rules. Characters that can be serialized such as < and & are allowed. However, characters such as the form feed, null, vertical tab, unmatched halves of surrogate pairs, and 0xFFFE and 0xFFFF are not allowed. Passing null is the same as passing the empty string.

Parameters:
  `data` - the text to install in the object
Throws:
  `IllegalCharacterDataException` - if data contains any characters which are illegal in well-formed XML 1.0 such as null, vertical tab, or unmatched halves of surrogate pairs

### getValue

public final String getValue()

Returns the XPath 1.0 string-value of this `Text` node. The XPath string-value of a text node is the same as the text of the node.

Specified by:
  `getValue` in class `Node`
Returns:
  the content of the node

### getChild

public final Node getChild(int position)

Throws `IndexOutOfBoundsException` because texts do not have children.

Specified by:
  `getChild` in class `Node`
Parameters:
  `position` - the index of the child node to return
Returns:
  never returns because texts do not have children; always throws an exception.
Throws:
  `IndexOutOfBoundsException` - because texts do not have children

### getChildCount

public final int getChildCount()

Returns 0 because texts do not have children.

Specified by:
  `getChildCount` in class `Node`
Returns:
  zero

### copy

public Text copy()

Returns a deep copy of this `Text` with no parent, that can be added to this document or a different one.

Specified by:
  `copy` in class `Node`
Returns:
  a deep copy of this text node with no parent

### toXML

public final String toXML()

Returns a string containing the XML serialization of this text node. Unlike `getValue`, this method escapes characters such as & and < using entity references such as `&amp;` and `&lt;`. It escapes the carriage return (\r) as `&#x0D;`. If this text node is a CDATA section, then it may wrap the value in CDATA section delimiters instead of escaping.

Specified by:
  `toXML` in class `Node`
Returns:
  the string form of this text node

### toString

public final String toString()

Returns a `String` representation of this `Text` suitable for debugging and diagnosis. This is not the XML representation of this `Text` node.

Overrides:
  `toString` in class `Object`
Returns:
  a non-XML string representation of this node