Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/FaceletDocumentFactory.java')
-rw-r--r--jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/FaceletDocumentFactory.java177
1 files changed, 0 insertions, 177 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/FaceletDocumentFactory.java b/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/FaceletDocumentFactory.java
deleted file mode 100644
index 0c806f8a4..000000000
--- a/jsf/plugins/org.eclipse.jst.jsf.facelet.core/src/org/eclipse/jst/jsf/facelet/core/internal/cm/FaceletDocumentFactory.java
+++ /dev/null
@@ -1,177 +0,0 @@
-package org.eclipse.jst.jsf.facelet.core.internal.cm;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jst.jsf.common.runtime.internal.view.model.common.Namespace;
-import org.eclipse.jst.jsf.core.JSFVersion;
-import org.eclipse.jst.jsf.designtime.internal.view.model.ITagRegistry;
-import org.eclipse.jst.jsf.designtime.internal.view.model.TagRegistryFactory.TagRegistryFactoryException;
-import org.eclipse.jst.jsf.facelet.core.internal.registry.FaceletRegistryManager.MyRegistryFactory;
-import org.eclipse.jst.jsf.facelet.core.internal.util.ViewUtil;
-import org.eclipse.jst.jsf.facelet.core.internal.util.ViewUtil.PrefixEntry;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.CMDocumentFactoryTLD;
-import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDDocument;
-import org.eclipse.jst.jsp.core.taglib.ITaglibRecord;
-import org.eclipse.jst.jsp.core.taglib.TaglibIndex;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument;
-import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration;
-import org.w3c.dom.Element;
-
-/**
- * Creates CMDocument framework adaptation for Facelet features.
- *
- * NOTE: this class currently caches state and is NOT THREADSAFE. Share
- * instances of this class between unowned classes at your own risk.
- *
- * @author cbateman
- *
- */
-public class FaceletDocumentFactory
-{
- private final IProject _project;
- private final Map<String, NamespaceCMAdapter> _cmDocuments;
- private final Map<String, TagInfo> _externalTagInfo;
-
- /**
- * @param project
- */
- public FaceletDocumentFactory(final IProject project)
- {
- _project = project;
- _cmDocuments = new HashMap<String, NamespaceCMAdapter>(8);
- _externalTagInfo = new HashMap<String, TagInfo>(8);
- }
-
- /**
- * @param uri
- * @param prefix
- * @return the CMDocument for the uri where prefix is used as its namespace
- * short-form (usually in the context of an XML document instance).
- */
- public CMDocument createCMDocumentForContext(final String uri,
- final String prefix)
- {
- final NamespaceCMAdapter cmDoc = getOrCreateCMDocument(_project, uri);
-
- if (cmDoc != null)
- {
- return new DocumentNamespaceCMAdapter(cmDoc, prefix);
- }
- return null;
- }
-
- /**
- * @param element
- * @return the CM model data for element or null if none.
- */
- public CMElementDeclaration createCMElementDeclaration(final Element element)
- {
- final String prefix = element.getPrefix();
- final Map<String, PrefixEntry> namespaces = ViewUtil
- .getDocumentNamespaces(element.getOwnerDocument());
- final PrefixEntry prefixEntry = namespaces.get(prefix);
-
- if (prefixEntry != null)
- {
- final CMDocument cmDoc = createCMDocumentForContext(prefixEntry
- .getUri(), prefixEntry.getPrefix());
-
- if (cmDoc != null)
- {
- return (CMElementDeclaration) cmDoc.getElements().getNamedItem(
- element.getLocalName());
- }
- }
-
- return null;
- }
-
- /**
- * @param ns
- * @return the externa tag info the namespace. May return a previously
- * cached value. If there is no cached value, then creates it.
- */
- public TagInfo getOrCreateExtraTagInfo(final String ns)
- {
- TagInfo tagInfo = _externalTagInfo.get(ns);
-
- if (tagInfo == null)
- {
- tagInfo = createExternalTagInfo(ns);
- _externalTagInfo.put(ns, tagInfo);
- }
- return tagInfo;
- }
-
- /**
- * @return a new external tag info for this namespace
- */
- private TagInfo createExternalTagInfo(final String uri)
- {
- final JSFVersion jsfVersion = JSFVersion.valueOfProject(_project);
- TagInfo tldTagInfo = null;
- if (jsfVersion != null)
- {
- if (jsfVersion.compareTo(JSFVersion.V2_0) >= 0)
- {
- tldTagInfo = new FaceletTagInfo(_project, uri);
- } else
- {
- final ITaglibRecord[] tldrecs = TaglibIndex
- .getAvailableTaglibRecords(_project.getFullPath());
- FIND_TLDRECORD: for (final ITaglibRecord rec : tldrecs)
- {
- final String matchUri = rec.getDescriptor().getURI();
- if (uri.equals(matchUri))
- {
- final CMDocumentFactoryTLD factory = new CMDocumentFactoryTLD();
- tldTagInfo = new MetadataTagInfo(_project,
- (TLDDocument) factory.createCMDocument(rec));
- break FIND_TLDRECORD;
- }
- }
-
- if (tldTagInfo == null)
- {
- tldTagInfo = new MetadataTagInfo(_project, uri);
- }
- }
- }
- return tldTagInfo;
- }
-
- private NamespaceCMAdapter getOrCreateCMDocument(final IProject project,
- final String uri)
- {
- NamespaceCMAdapter adapter = _cmDocuments.get(uri);
-
- if (adapter == null)
- {
- final MyRegistryFactory factory = new MyRegistryFactory();
-
- ITagRegistry registry;
- try
- {
- registry = factory.createTagRegistry(project);
- if (registry != null)
- {
- final Namespace ns = registry.getTagLibrary(uri);
-
- if (ns != null)
- {
- adapter = new NamespaceCMAdapter(ns, project);
- _cmDocuments.put(uri, adapter);
- }
- }
- }
- catch (final TagRegistryFactoryException e)
- {
- // fall-through
- }
- }
- return adapter;
- }
-
-}

Back to the top