Class CoreDOMImplementationImpl

java.lang.Object
org.htmlunit.cyberneko.xerces.dom.CoreDOMImplementationImpl
All Implemented Interfaces:
DOMImplementation
Direct Known Subclasses:
DOMImplementationImpl

public class CoreDOMImplementationImpl extends Object implements DOMImplementation
The DOMImplementation class is description of a particular implementation of the Document Object Model. As such its data is static, shared by all instances of this implementation.

The DOM API requires that it be a real object rather than static methods. However, there's nothing that says it can't be a singleton, so that's how I've implemented it.

This particular class, along with CoreDocumentImpl, supports the DOM Core and Load/Save (Experimental). Optional modules are supported by the more complete DOMImplementation class along with DocumentImpl.

  • Field Details

    • docAndDoctypeCounter_

      private int docAndDoctypeCounter_
    • singleton

      private static final CoreDOMImplementationImpl singleton
      Dom implementation singleton.
  • Constructor Details

    • CoreDOMImplementationImpl

      public CoreDOMImplementationImpl()
  • Method Details

    • getDOMImplementation

      public static DOMImplementation getDOMImplementation()
    • hasFeature

      public boolean hasFeature(String feature, String version)
      Test if the DOM implementation supports a specific "feature" -- currently meaning language and level thereof.
      Specified by:
      hasFeature in interface DOMImplementation
      Parameters:
      feature - The package name of the feature to test. In Level 1, supported values are "HTML" and "XML" (case-insensitive). At this writing, org.htmlunit.cyberneko.xerces.dom supports only XML.
      version - The version number of the feature being tested. This is interpreted as "Version of the DOM API supported for the specified Feature", and in Level 1 should be "1.0"
      Returns:
      true iff this implementation is compatible with the specified feature and version.
    • createDocumentType

      public DocumentType createDocumentType(String qualifiedName, String publicID, String systemID)
      Introduced in DOM Level 2.

      Creates an empty DocumentType node.

      Specified by:
      createDocumentType in interface DOMImplementation
      Parameters:
      qualifiedName - The qualified name of the document type to be created.
      publicID - The document type public identifier.
      systemID - The document type system identifier.
    • checkQName

      final void checkQName(String qname)
    • createDocument

      public Document createDocument(String namespaceURI, String qualifiedName, DocumentType doctype) throws DOMException
      Introduced in DOM Level 2.

      Creates an XML Document object of the specified type with its document element.

      Specified by:
      createDocument in interface DOMImplementation
      Parameters:
      namespaceURI - The namespace URI of the document element to create, or null.
      qualifiedName - The qualified name of the document element to create.
      doctype - The type of document to be created or null.

      When doctype is not null, its Node.ownerDocument attribute is set to the document being created.

      Returns:
      Document A new Document object.
      Throws:
      DOMException - WRONG_DOCUMENT_ERR: Raised if doctype has already been used with a different document.
    • createDocument

      protected CoreDocumentImpl createDocument(DocumentType doctype)
    • getFeature

      public Object getFeature(String feature, String version)
      DOM Level 3 WD - Experimental.
      Specified by:
      getFeature in interface DOMImplementation
    • assignDocumentNumber

      protected int assignDocumentNumber()
    • assignDocTypeNumber

      protected int assignDocTypeNumber()