| /******************************************************************************* |
| * Copyright (c) 2001, 2005 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| * Jens Lukowski/Innoopract - initial renaming/restructuring |
| * |
| *******************************************************************************/ |
| package org.eclipse.wst.xml.core.internal.provisional.document; |
| |
| |
| |
| import org.w3c.dom.DOMException; |
| import org.w3c.dom.Text; |
| |
| /** |
| * This interface provides extensions to corresponding DOM interface to enable |
| * functions for source editing and incremental parsing. |
| * |
| * @plannedfor 1.0 |
| * |
| */ |
| public interface IDOMText extends IDOMNode, Text { |
| |
| /** |
| * NOT API - can be eliminated or moved to ltk level |
| * |
| * Appends the content of the text node |
| * |
| * @param text - |
| * the Text to append. |
| */ |
| void appendText(Text text); |
| |
| /** |
| * NOT API - can be eliminated or moved to ltk level |
| * |
| * Returns true if is not valid. |
| */ |
| boolean isInvalid(); |
| |
| /** |
| * Returns true if is entirely white space. |
| * |
| * This is intened to be better performing that all clients getting the |
| * source, and checking themselves. |
| * |
| * ISSUE: need to clarify if implementation is pure to "white space" as |
| * per DOM spec? Here is the DOM spec: |
| * |
| * Returns whether this text node contains <a |
| * href='http://www.w3.org/TR/2004/REC-xml-infoset-20040204#infoitem.character'> |
| * element content whitespace</a>, often abusively called "ignorable |
| * whitespace". The text node is determined to contain whitespace in |
| * element content during the load of the document or if validation occurs |
| * while using <code>Document.normalizeDocument()</code>. |
| * |
| * @see DOM Level 3 |
| * |
| * @return true if is entirely white space. |
| */ |
| |
| public boolean isElementContentWhitespace(); |
| |
| /** |
| * NOT YET IMPLEMTENTED but exists here interface in preparation for DOM3 |
| * |
| * Returns all text of <code>Text</code> nodes logically-adjacent text |
| * nodes to this node, concatenated in document order. <br> |
| * For instance, in the example below <code>wholeText</code> on the |
| * <code>Text</code> node that contains "bar" returns "barfoo", while on |
| * the <code>Text</code> node that contains "foo" it returns "barfoo". |
| * |
| * @see DOM Level 3 |
| * |
| */ |
| public String getWholeText(); |
| |
| /** |
| * NOT YET IMPLEMTENTED but exists here interface in preparation for DOM3 |
| * |
| * Replaces the text of the current node and all logically-adjacent text |
| * nodes with the specified text. All logically-adjacent text nodes are |
| * removed including the current node unless it was the recipient of the |
| * replacement text. <br> |
| * This method returns the node which received the replacement text. The |
| * returned node is: |
| * <ul> |
| * <li><code>null</code>, when the replacement text is the empty |
| * string; </li> |
| * <li>the current node, except when the current node is read-only; </li> |
| * <li> a new <code>Text</code> node of the same type ( |
| * <code>Text</code> or <code>CDATASection</code>) as the current |
| * node inserted at the location of the replacement. </li> |
| * </ul> |
| * <br> |
| * For instance, in the above example calling |
| * <code>replaceWholeText</code> on the <code>Text</code> node that |
| * contains "bar" with "yo" in argument results in the following: <br> |
| * Where the nodes to be removed are read-only descendants of an |
| * <code>EntityReference</code>, the <code>EntityReference</code> |
| * must be removed instead of the read-only nodes. If any |
| * <code>EntityReference</code> to be removed has descendants that are |
| * not <code>EntityReference</code>, <code>Text</code>, or |
| * <code>CDATASection</code> nodes, the <code>replaceWholeText</code> |
| * method must fail before performing any modification of the document, |
| * raising a <code>DOMException</code> with the code |
| * <code>NO_MODIFICATION_ALLOWED_ERR</code>. <br> |
| * For instance, in the example below calling |
| * <code>replaceWholeText</code> on the <code>Text</code> node that |
| * contains "bar" fails, because the <code>EntityReference</code> node |
| * "ent" contains an <code>Element</code> node which cannot be removed. |
| * |
| * @param content |
| * The content of the replacing <code>Text</code> node. |
| * @return The <code>Text</code> node created with the specified |
| * content. |
| * @exception DOMException |
| * NO_MODIFICATION_ALLOWED_ERR: Raised if one of the |
| * <code>Text</code> nodes being replaced is readonly. |
| * @see DOM Level 3 |
| */ |
| public Text replaceWholeText(String content) throws DOMException; |
| |
| } |