⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 documentfragmentimpl.java

📁 Java的面向对象数据库系统的源代码
💻 JAVA
字号:
/**
 * org/ozone-db/xml/dom/DocumentFragmentImpl.java
 *
 * The contents of this file are subject to the OpenXML Public
 * License Version 1.0; you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at
 * http://www.openxml.org/license.html
 *
 * THIS SOFTWARE IS DISTRIBUTED ON AN "AS IS" BASIS WITHOUT WARRANTY
 * OF ANY KIND, EITHER EXPRESSED OR IMPLIED. THE INITIAL DEVELOPER
 * AND ALL CONTRIBUTORS SHALL NOT BE LIABLE FOR ANY DAMAGES AS A
 * RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS
 * DERIVATIVES. SEE THE LICENSE FOR THE SPECIFIC LANGUAGE GOVERNING
 * RIGHTS AND LIMITATIONS UNDER THE LICENSE.
 *
 * The Initial Developer of this code under the License is Assaf Arkin.
 * Portions created by Assaf Arkin are Copyright (C) 1998, 1999.
 * All Rights Reserved.
 */

/**
 * Changes for Persistent DOM running with ozone are
 * Copyright 1999 by SMB GmbH. All rights reserved.
 */

package org.ozoneDB.xml.dom;

import org.w3c.dom.*;


/**
 * Implements a lightweight or minimal {@link org.w3c.dom.Document}.
 * Primarily used to carry document parts from one document to another,
 * or to hold impartial documents without maintaining any {@link
 * org.w3c.dom.Document} consistency rules on them.
 * <P>
 * Notes:
 * <OL>
 * <LI>Node type is {@link org.w3c.dom.Node#DOCUMENT_FRAGMENT_NODE}
 * <LI>Node supports childern
 * <LI>Node name is always "#document-fragment"
 * <LI>Node does not have a value
 * <LI>Special rules apply when adding fragment to other nodes (see
 *  {@link org.w3c.dom.Node#appendChild}).
 * </OL>
 *
 *
 * @version $Revision: 1.2 $ $Date: 2003/11/20 23:18:42 $
 * @author <a href="mailto:arkin@trendline.co.il">Assaf Arkin</a>
 * @see org.w3c.dom.DocumentFragment
 * @see NodeImpl
 */
public final class DocumentFragmentImpl extends NodeImpl implements DocumentFragmentProxy {

    final static long serialVersionUID = 1;


    public short getNodeType() {
        return DOCUMENT_FRAGMENT_NODE;
    }


    public final void setNodeValue( String value ) {
        throw new DOMExceptionImpl( DOMException.NO_DATA_ALLOWED_ERR, "This node type does not support values." );
    }


    protected boolean supportsChildern() {
        return true;
    }


    public final Object clone() {
        TextProxy clone = null;
        try {
            clone = (TextProxy)database().createObject( TextImpl.class.getName() );
            clone.init( _ownerDocument, getNodeValue() );
            cloneInto( clone, true );
        } catch (Exception except) {
            throw new DOMExceptionImpl( DOMExceptionImpl.PDOM_ERR, except.getMessage() );
        }
        return clone;
    }


    public final Node cloneNode( boolean deep ) {
        TextProxy clone = null;
        try {
            clone = (TextProxy)database().createObject( TextImpl.class.getName() );
            clone.init( _ownerDocument, getNodeValue() );
            cloneInto( clone, deep );
        } catch (Exception except) {
            throw new DOMExceptionImpl( DOMExceptionImpl.PDOM_ERR, except.getMessage() );
        }
        return clone;
    }


    public String toString() {
        return "Document Fragment (" + getChildCount() + " nodes)";
    }


    /**
     * Constructor requires only document owner.
     */
    DocumentFragmentImpl( DocumentImpl owner ) {
        super( owner, "#document-fragment", null, false );
    }


    public DocumentFragmentImpl() {
        super();
    }


    public final void init( DocumentProxy owner, String value ) {
        super.init( owner, "#document-fragment", value, false );
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -