Package org.zkoss.idom

## Interface Textual

- All Known Implementing Classes:
    `AbstractTextual`, `Binary`, `CData`, `Comment`, `Text`

      public interface Textual

  Represents an object that is mainly for storing "text". It is usually implemented by a class that also implements Item.

  A "text" is usually a string (e.g., Text, Comment and CDATA) but could be any object (e.g., Binary).

  The getText method of some parent, e.g., Element, concatenates the text of its children if they implement this interface and Textual.isPartOfParentText returns true.

  Note: the class that implement this interface must have a constructor with a single argument whose type is String. The split method will invoke it to create a new instance.

  Author:
    tomyeh
  See Also:
    `Item`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `isCoalesceable()` | Returns true if this textual object is allowed to be coalesced with its siblings with the same type (class).
    `boolean` | `isPartOfParentText()` | Returns true if this textual object is part of the parent's text.
    `Textual` | `split​(int offset)` | Splits at the specified offset into two Textual objects.

- - ### Method Detail

    - #### split

          Textual split​(int offset)

      Splits at the specified offset into two Textual objects. The new textual object is inserted right after this one.
      Returns:
        the new textual object; null if offset is no less than length

    - #### isPartOfParentText

          boolean isPartOfParentText()

      Returns true if this textual object is part of the parent's text. Currently, only Element.getText uses it.

    - #### isCoalesceable

          boolean isCoalesceable()

      Returns true if this textual object is allowed to be coalesced with its siblings with the same type (class). It is used by Group.coalesce.