01: /* Textual.java
02:
03: {{IS_NOTE
04:
05: Purpose:
06: Description:
07: History:
08: 2001/10/24 20:23:58, Create, Tom M. Yeh.
09: }}IS_NOTE
10:
11: Copyright (C) 2001 Potix Corporation. All Rights Reserved.
12:
13: {{IS_RIGHT
14: This program is distributed under GPL Version 2.0 in the hope that
15: it will be useful, but WITHOUT ANY WARRANTY.
16: }}IS_RIGHT
17: */
18: package org.zkoss.idom;
19:
20: /**
21: * Represents an object that is mainly for storing "text".
22: * It is usually implemented by a class that also implements Item.
23: *
24: * <p>A "text" is usually a string (e.g., Text, Comment and CDATA) but
25: * could be any object (e.g., Binary).
26: *
27: * <p>The getText method of some parent, e.g., Element, catenates
28: * the text of its children if they implement this interface and
29: * Textual.isPartOfParentText returns true.
30: *
31: * <p>Note: the class that implement this interface must have a constructor
32: * with a single argument whose type is String. The split method will
33: * invoke it to create a new instance.
34: *
35: * @author tomyeh
36: * @see Item
37: */
38: public interface Textual {
39: /**
40: * Splits at the specified offset into two Textual objects.
41: * The new textual object is inserted right after this one.
42: *
43: * @return the new textual object; null if offset is no less than length
44: */
45: public Textual split(int offset);
46:
47: /**
48: * Returns true if this textual object is part of the parent's text.
49: * Currently, only Element.getText uses it.
50: */
51: public boolean isPartOfParentText();
52:
53: /**
54: * Returns true if this textual object is allowed to be coalesced with
55: * its siblings with the same type (class).
56: * It is used by Group.coalesce.
57: */
58: public boolean isCoalesceable();
59: }
|