1 /* 2 * The Apache Software License, Version 1.1 3 * 4 * 5 * Copyright (c) 1999,2000 The Apache Software Foundation. All rights 6 * reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 12 * 1. Redistributions of source code must retain the above copyright 13 * notice, this list of conditions and the following disclaimer. 14 * 15 * 2. Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in 17 * the documentation and/or other materials provided with the 18 * distribution. 19 * 20 * 3. The end-user documentation included with the redistribution, 21 * if any, must include the following acknowledgment: 22 * "This product includes software developed by the 23 * Apache Software Foundation (http://www.apache.org/)." 24 * Alternately, this acknowledgment may appear in the software itself, 25 * if and wherever such third-party acknowledgments normally appear. 26 * 27 * 4. The names "Xerces" and "Apache Software Foundation" must 28 * not be used to endorse or promote products derived from this 29 * software without prior written permission. For written 30 * permission, please contact apache@apache.org. 31 * 32 * 5. Products derived from this software may not be called "Apache", 33 * nor may "Apache" appear in their name, without prior written 34 * permission of the Apache Software Foundation. 35 * 36 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 37 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 38 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 39 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 40 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 41 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 42 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 43 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 44 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 45 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 46 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 47 * SUCH DAMAGE. 48 * ==================================================================== 49 * 50 * This software consists of voluntary contributions made by many 51 * individuals on behalf of the Apache Software Foundation and was 52 * originally based on software copyright (c) 1999, International 53 * Business Machines, Inc., http://www.apache.org. For more 54 * information on the Apache Software Foundation, please see 55 * <http://www.apache.org/>. 56 */ 57 package org.enhydra.apache.html.dom; 58 59 60 import org.enhydra.apache.xerces.dom.DOMImplementationImpl; 61 import org.w3c.dom.DOMException; 62 import org.w3c.dom.html.HTMLDOMImplementation; 63 import org.w3c.dom.html.HTMLDocument; 64 65 66 /** 67 * Provides number of methods for performing operations that are independent 68 * of any particular instance of the document object model. This class is 69 * unconstructable, the only way to obtain an instance of a DOM implementation 70 * is by calling the static method {@link #getDOMImplementation}. 71 * 72 * @version $Revision: 1.2 $ $Date: 2005/01/26 08:28:44 $ 73 * @author <a HREF="mailto:arkin@exoffice.com">Assaf Arkin</a> 74 * @see org.w3c.dom.DOMImplementation 75 */ 76 public class HTMLDOMImplementationImpl 77 extends DOMImplementationImpl 78 implements HTMLDOMImplementation 79 { 80 81 82 /** 83 * Holds a reference to the single instance of the DOM implementation. 84 * Only one instance is required since this class is multiple entry. 85 */ 86 private static HTMLDOMImplementation _instance = new HTMLDOMImplementationImpl(); 87 88 89 /** 90 * Private constructor assures that an object of this class cannot 91 * be created. The only way to obtain an object is by calling {@link 92 * #getDOMImplementation}. 93 */ 94 private HTMLDOMImplementationImpl() 95 { 96 } 97 98 99 /** 100 * Create a new HTML document of the specified <TT>TITLE</TT> text. 101 * 102 * @param title The document title text 103 * @return New HTML document 104 */ 105 public final HTMLDocument createHTMLDocument( String title ) 106 throws DOMException 107 { 108 HTMLDocument doc; 109 110 if ( title == null ) 111 throw new NullPointerException( "HTM014 Argument 'title' is null." ); 112 doc = new HTMLDocumentImpl(); 113 doc.setTitle( title ); 114 return doc; 115 } 116 117 118 /** 119 * Returns an instance of a {@link HTMLDOMImplementation} that can be 120 * used to perform operations that are not specific to a particular 121 * document instance, e.g. to create a new document. 122 * 123 * @return Reference to a valid DOM implementation 124 */ 125 public static HTMLDOMImplementation getHTMLDOMImplementation() 126 { 127 return _instance; 128 } 129 130 131 } 132