diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/tld/CMUtil.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/tld/CMUtil.java | 204 |
1 files changed, 0 insertions, 204 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/tld/CMUtil.java b/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/tld/CMUtil.java deleted file mode 100644 index b31f60929..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.core/src/org/eclipse/jst/jsf/core/internal/tld/CMUtil.java +++ /dev/null @@ -1,204 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2006 Sybase, Inc. 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: - * Sybase, Inc. - initial API and implementation - *******************************************************************************/ -package org.eclipse.jst.jsf.core.internal.tld; - -import java.util.Iterator; - -import org.eclipse.jface.text.IDocument; -import org.eclipse.jst.jsp.core.internal.contentmodel.TaglibController; -import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TLDCMDocumentManager; -import org.eclipse.jst.jsp.core.internal.contentmodel.tld.TaglibTracker; -import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDDocument; -import org.eclipse.jst.jsp.core.internal.contentmodel.tld.provisional.TLDElementDeclaration; -import org.eclipse.wst.html.core.internal.contentmodel.HTMLElementDeclaration; -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDocument; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; -import org.eclipse.wst.xml.core.internal.provisional.contentmodel.CMNodeWrapper; -import org.eclipse.wst.xml.core.internal.ssemodelquery.ModelQueryAdapter; -import org.w3c.dom.Element; - -/** - * Utility class to content model related information. - * - * @author mengbo - */ -public final class CMUtil { - /** - * If the element is a custom tag, get the URI of it. If the element is a - * standard JSP tag, return null. If is not jsp tag, then return null - * @param decl - * - * @return the tag uri as a string - */ - public static String getTagURI(CMElementDeclaration decl) { - if (decl instanceof CMNodeWrapper) { - decl = (CMElementDeclaration) ((CMNodeWrapper) decl) - .getOriginNode(); - } - if (decl instanceof TLDElementDeclaration) { - CMDocument doc = ((TLDElementDeclaration) decl).getOwnerDocument(); - if (doc instanceof TLDDocument) { - return ((TLDDocument) doc).getUri(); - } - } - return null; - } - - /** - * Test whether this is the JSP core tag. - * - * @param decl - * @return true if decl is a jsp element declaration - */ - public static boolean isJSP(CMElementDeclaration decl) { - if (!decl.supports(HTMLCMProperties.IS_JSP)) { - return false; - } - Boolean b = (Boolean) decl.getProperty(HTMLCMProperties.IS_JSP); - return b.booleanValue(); - } - - /** - * @param decl - * @return true if the element declartion is a non-JSP html element - */ - public static boolean isHTML(CMElementDeclaration decl) { - if (!isJSP(decl) && (decl instanceof HTMLElementDeclaration)) { - return true; - } - return false; - } - - /** - * get element declaration of specified element - * - * @param element - * @return null if can't get it. - */ - public static CMElementDeclaration getElementDeclaration(Element element) { - if (element == null) { - return null; - } - INodeNotifier notifier = (INodeNotifier) element.getOwnerDocument(); - if (notifier == null) { - return null; - } - ModelQueryAdapter mqa = (ModelQueryAdapter) notifier - .getAdapterFor(ModelQueryAdapter.class); - if (mqa == null) { - return null; - } - return mqa.getModelQuery().getCMElementDeclaration(element); - } - - /** - * @param element - * @return the TLDElementDeclaration for element or null if not found - */ - public static TLDElementDeclaration getTLDElementDeclaration(Element element) { - CMNode decl = getElementDeclaration(element); - if (decl instanceof CMNodeWrapper) { - decl = ((CMNodeWrapper) decl).getOriginNode(); - } - if (decl instanceof TLDElementDeclaration) { - return (TLDElementDeclaration) decl; - } - return null; - } - - /** - * !!! NOTE: this function is intended to work around the problem that if your element - * has not yet been added to an IDOMModel, getElementDeclaration won't be able to find - * it. This method does nothing (unlike the ModelQuery-based approach in getElementDeclaration) - * to ensure that the namespace "uri" provided is valid in the structured document provided. It is - * therefore only advisable to use this method in cases where your node is not already a member of a - * IDOMModel. - * - * @param uri - * @param elementName - * @param document - * @return the TLDElementDeclaration for this required tag or null if there is nothing appropriate - */ - public static CMElementDeclaration getTLDElementDeclaration(final String uri, final String elementName, IDocument document) - { - TLDCMDocumentManager tldmgr = TaglibController.getTLDCMDocumentManager(document); - - if (tldmgr != null) - { - for (Iterator it = tldmgr.getTaglibTrackers().iterator();it.hasNext();) - { - TaglibTracker tracker = (TaglibTracker) it.next(); - - if (tracker.getURI().equals(uri)) - { - return (CMElementDeclaration) tracker.getElements().getNamedItem(tracker.getPrefix()+":"+elementName); - } - } - } - // fallthrough - return null; - } - - /** - * give an element, get its namespace URI. - * - * @param element - * @return the namespace URI - */ - public static String getElementNamespaceURI(Element element) { - //System.out.printf("uri for %s is %s\n", element.toString(), element.getNamespaceURI()); - - CMElementDeclaration decl = getElementDeclaration(element); - if (decl == null) { - - // if the content model has nothing, see if the element - // itself has an xml namespace - // TODO: should only apply this if the source document - // is a valid XML doc? - final String uri = element.getNamespaceURI(); - - // may be null which the default state - return uri; - } - - if (isJSP(decl)) { - return ITLDConstants.URI_JSP; - } else if (isHTML(decl)) { - return ITLDConstants.URI_HTML; - } - - return getTagURI(decl); - } - - /** - * @param element - * @return true if the element can have children - */ - public static boolean canHaveDirectTextChild(Element element) { - CMElementDeclaration decl = getElementDeclaration(element); - if (decl == null) { - return true; - } - int contentType = decl.getContentType(); - return contentType != CMElementDeclaration.ELEMENT - && contentType != CMElementDeclaration.EMPTY; - - } - - private CMUtil() - { - // util class, no external instantiation - } -} |