diff options
Diffstat (limited to 'src/com/sun/org/apache/xerces/internal/dom/DocumentFragmentImpl.java')
-rw-r--r-- | src/com/sun/org/apache/xerces/internal/dom/DocumentFragmentImpl.java | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/src/com/sun/org/apache/xerces/internal/dom/DocumentFragmentImpl.java b/src/com/sun/org/apache/xerces/internal/dom/DocumentFragmentImpl.java deleted file mode 100644 index 64248e2..0000000 --- a/src/com/sun/org/apache/xerces/internal/dom/DocumentFragmentImpl.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - * reserved comment block - * DO NOT REMOVE OR ALTER! - */ -/* - * Copyright 1999-2004 The Apache Software Foundation. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.sun.org.apache.xerces.internal.dom; - -import org.w3c.dom.DocumentFragment; -import org.w3c.dom.Node; -import org.w3c.dom.Text; - -/** - * DocumentFragment is a "lightweight" or "minimal" Document - * object. It is very common to want to be able to extract a portion - * of a document's tree or to create a new fragment of a - * document. Imagine implementing a user command like cut or - * rearranging a document by moving fragments around. It is desirable - * to have an object which can hold such fragments and it is quite - * natural to use a Node for this purpose. While it is true that a - * Document object could fulfil this role, a Document object can - * potentially be a heavyweight object, depending on the underlying - * implementation... and in DOM Level 1, nodes aren't allowed to cross - * Document boundaries anyway. What is really needed for this is a - * very lightweight object. DocumentFragment is such an object. - * <P> - * Furthermore, various operations -- such as inserting nodes as - * children of another Node -- may take DocumentFragment objects as - * arguments; this results in all the child nodes of the - * DocumentFragment being moved to the child list of this node. - * <P> - * The children of a DocumentFragment node are zero or more nodes - * representing the tops of any sub-trees defining the structure of - * the document. DocumentFragment do not need to be well-formed XML - * documents (although they do need to follow the rules imposed upon - * well-formed XML parsed entities, which can have multiple top - * nodes). For example, a DocumentFragment might have only one child - * and that child node could be a Text node. Such a structure model - * represents neither an HTML document nor a well-formed XML document. - * <P> - * When a DocumentFragment is inserted into a Document (or indeed any - * other Node that may take children) the children of the - * DocumentFragment and not the DocumentFragment itself are inserted - * into the Node. This makes the DocumentFragment very useful when the - * user wishes to create nodes that are siblings; the DocumentFragment - * acts as the parent of these nodes so that the user can use the - * standard methods from the Node interface, such as insertBefore() - * and appendChild(). - * - * @xerces.internal - * - * @since PR-DOM-Level-1-19980818. - */ -public class DocumentFragmentImpl - extends ParentNode - implements DocumentFragment { - - // - // Constants - // - - /** Serialization version. */ - static final long serialVersionUID = -7596449967279236746L; - - // - // Constructors - // - - /** Factory constructor. */ - public DocumentFragmentImpl(CoreDocumentImpl ownerDoc) { - super(ownerDoc); - } - - /** Constructor for serialization. */ - public DocumentFragmentImpl() {} - - // - // Node methods - // - - /** - * A short integer indicating what type of node this is. The named - * constants for this value are defined in the org.w3c.dom.Node interface. - */ - public short getNodeType() { - return Node.DOCUMENT_FRAGMENT_NODE; - } - - /** Returns the node name. */ - public String getNodeName() { - return "#document-fragment"; - } - - /** - * Override default behavior to call normalize() on this Node's - * children. It is up to implementors or Node to override normalize() - * to take action. - */ - public void normalize() { - // No need to normalize if already normalized. - if (isNormalized()) { - return; - } - if (needsSyncChildren()) { - synchronizeChildren(); - } - ChildNode kid, next; - - for (kid = firstChild; kid != null; kid = next) { - next = kid.nextSibling; - - // If kid is a text node, we need to check for one of two - // conditions: - // 1) There is an adjacent text node - // 2) There is no adjacent text node, but kid is - // an empty text node. - if ( kid.getNodeType() == Node.TEXT_NODE ) - { - // If an adjacent text node, merge it with kid - if ( next!=null && next.getNodeType() == Node.TEXT_NODE ) - { - ((Text)kid).appendData(next.getNodeValue()); - removeChild( next ); - next = kid; // Don't advance; there might be another. - } - else - { - // If kid is empty, remove it - if ( kid.getNodeValue() == null || kid.getNodeValue().length() == 0 ) { - removeChild( kid ); - } - } - } - - kid.normalize(); - } - - isNormalized(true); - } - -} // class DocumentFragmentImpl |