package at.ac.tuwien.dsg.scaledom; import static com.google.common.base.Preconditions.checkNotNull; import org.w3c.dom.DOMException; import org.w3c.dom.DOMImplementation; import org.w3c.dom.Document; import org.w3c.dom.DocumentType; /** * ScaleDOM implementation of <code>DOMImplementation</code>. As ScaleDOM does not reimplement the whole DOM * implementation from scratch, all calls are forwarded to the implementation ScaleDOM is based upon. * * @author Dominik Rauch * @see DOMImplementation */ public class ScaleDomDOMImplementation implements DOMImplementation { /** Base DOM implementation */ private final DOMImplementation baseDomImplementation; /** * Default constructor. */ ScaleDomDOMImplementation(final DOMImplementation baseDomImplementation) { checkNotNull(baseDomImplementation, "Argument baseDomImplementation must not be null."); this.baseDomImplementation = baseDomImplementation; } @Override public Document createDocument(final String namespaceURI, final String qualifiedName, final DocumentType doctype) throws DOMException { return baseDomImplementation.createDocument(namespaceURI, qualifiedName, doctype); } @Override public DocumentType createDocumentType(final String qualifiedName, final String publicId, final String systemId) throws DOMException { return baseDomImplementation.createDocumentType(qualifiedName, publicId, systemId); } @Override public Object getFeature(final String feature, final String version) { return baseDomImplementation.getFeature(feature, version); } @Override public boolean hasFeature(final String feature, final String version) { return baseDomImplementation.hasFeature(feature, version); } }