zcommon/src/main/java/org/zkoss/idom/Textual.java

Summary

Maintainability
A
0 mins
Test Coverage
/* Textual.java


    Purpose: 
    Description: 
    History:
    2001/10/24 20:23:58, Create, Tom M. Yeh.

Copyright (C) 2001 Potix Corporation. All Rights Reserved.

{{IS_RIGHT
    This program is distributed under LGPL Version 2.1 in the hope that
    it will be useful, but WITHOUT ANY WARRANTY.
}}IS_RIGHT
*/
package org.zkoss.idom;

/**
 * Represents an object that is mainly for storing "text".
 * It is usually implemented by a class that also implements Item.
 *
 * <p>A "text" is usually a string (e.g., Text, Comment and CDATA) but
 * could be any object (e.g., Binary).
 *
 * <p>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.
 *
 * <p>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 Item
 */
public interface Textual {
    /**
     * Splits at the specified offset into two Textual objects.
     * The new textual object is inserted right after this one.
     *
     * @return the new textual object; null if offset is no less than length
     */
    public Textual split(int offset);

    /**
     * Returns true if this textual object is part of the parent's text.
     * Currently, only Element.getText uses it.
     */
    public boolean isPartOfParentText();

    /**
     * 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.
     */
    public boolean isCoalesceable();
}