diff options
Diffstat (limited to 'bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/XHTMLAssociationProvider.java')
-rw-r--r-- | bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/XHTMLAssociationProvider.java | 137 |
1 files changed, 0 insertions, 137 deletions
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/XHTMLAssociationProvider.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/XHTMLAssociationProvider.java deleted file mode 100644 index 82de2cb03a..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/XHTMLAssociationProvider.java +++ /dev/null @@ -1,137 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2006 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.html.core.internal.modelquery; - - -import org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument; -import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.CMDocumentManager; -import org.eclipse.wst.xml.core.internal.contentmodel.modelqueryimpl.XMLAssociationProvider; -import org.eclipse.wst.xml.core.internal.contentmodel.util.CMDocumentCache; -import org.w3c.dom.Document; - -/** - * A Class to provide an association between XHTML documents and DTDs for - * XHTML. This class is intended to be used only in HTMLModelQueryCMProvider. - */ -/* - * This class closely resemble XMLModelQueryAssociationProvider. - */ -class XHTMLAssociationProvider extends XMLAssociationProvider { - - /** - * set USE_QUICK_CACHE to false to test effects of not caching at all. - */ - private static final boolean USE_QUICK_CACHE = true; - protected URIResolver idResolver; - private String fCachedGrammerURI; - private String fCachedPublicID; - private String fCachedSystemID; - private boolean cached; - - public XHTMLAssociationProvider(CMDocumentCache cache, URIResolver idResolver) { - super(cache); - this.idResolver = idResolver; - - // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=136399. If the CM document URI - // is resolved and cached at this level instruct the CM model manager to avoid - // re-resolving the URI. - - if (USE_QUICK_CACHE) { - documentManager.setPropertyEnabled(CMDocumentManager.PROPERTY_PERFORM_URI_RESOLUTION, false); - } - } - - /** - * - * @param publicId - * @param systemId - * @return - */ - public CMDocument getXHTMLCMDocument(String publicId, String systemId) { - if (idResolver == null) - return null; - String grammerURI = null; - if (USE_QUICK_CACHE) { - /* - * In parsing a document, we get many identical requests to this - * method, so instead of looking up (resolving) grammerURI each - * time, we'll just return previously cached one. Probably not - * worth have a more complex cache than that. - */ - if (cached && sameAs(fCachedPublicID, publicId) && sameAs(fCachedSystemID, systemId)) { - grammerURI = fCachedGrammerURI; - } - else { - grammerURI = idResolver.resolve(null, publicId, systemId); - fCachedGrammerURI = grammerURI; - fCachedPublicID = publicId; - fCachedSystemID = systemId; - cached = true; - } - } - else { - grammerURI = idResolver.resolve(null, publicId, systemId); - } - - if (grammerURI == null) - return null; - - /* - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=88896 - * - * We once called the deprecated 2 argument form of getCMDocument. - * - * CMDocument cmDocument = documentManager.getCMDocument(publicId, - * grammerURI); - * - * which eventually resulted in empty string for type, which I don't - * think the infrastructure handles any longer. So, I deleted - * deprecated methods, and switched to null for type argument. - * - * 'null' means to "create based on uri". - * - * FYI, 'dtd' would mean load only those registered as dtd's - * - * CMDocument cmDocument = documentManager.getCMDocument(publicId, - * grammerURI); CMDocument cmDocument = - * documentManager.getCMDocument(publicId, grammerURI, "dtd"); - */ - CMDocument cmDocument = documentManager.getCMDocument(publicId, grammerURI, null); - return cmDocument; - } - - /** - */ - protected String resolveGrammarURI(Document document, String publicId, String systemId) { - return idResolver.resolve(null, publicId, systemId); - } - - private boolean sameAs(String a, String b) { - boolean result = false; - if (a == null) { - result = b == null; - } - else { - result = a.equals(b); - } - return result; - } - - /** - * This added and/or made public specifically for experimentation. It - * will change as this functionality becomes API. See - * https://bugs.eclipse.org/bugs/show_bug.cgi?id=119084 - */ - public String getCachedGrammerURI() { - return fCachedGrammerURI; - } -} |