diff options
Diffstat (limited to 'bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HMQUtil.java')
-rw-r--r-- | bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HMQUtil.java | 121 |
1 files changed, 0 insertions, 121 deletions
diff --git a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HMQUtil.java b/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HMQUtil.java deleted file mode 100644 index 377ad0972d..0000000000 --- a/bundles/org.eclipse.wst.html.core/src/org/eclipse/wst/html/core/internal/modelquery/HMQUtil.java +++ /dev/null @@ -1,121 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2004, 2005 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 java.util.Collection; -import java.util.Hashtable; -import java.util.Iterator; -import java.util.Vector; - -import org.eclipse.wst.html.core.internal.provisional.HTMLCMProperties; -import org.eclipse.wst.xml.core.internal.contentmodel.CMContent; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMGroup; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNodeList; -import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery; -import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -public final class HMQUtil { - - private final static Vector nullVector = new Vector(); - - /* HMQUtil class must not instantiate. */ - private HMQUtil() { - super(); - } - - /* gather all element declarations in inclusion of each parent of the target. - * the inclusion of the target is also gathered. */ - public static Collection getInclusions(Element target) { - if (target == null) - return nullVector; - Collection inclusions = gatherInclusions(getAncestorDeclarations(target)); - - Hashtable availables = new Hashtable(); - Iterator iter = inclusions.iterator(); - while (iter.hasNext()) { - CMContent inclusion = (CMContent) iter.next(); - switch (inclusion.getNodeType()) { - case CMNode.GROUP : - extractDeclarations(availables, (CMGroup) inclusion); - break; - case CMNode.ELEMENT_DECLARATION : - addInclusion(availables, (CMElementDeclaration) inclusion); - break; - } - } - - return availables.values(); - } - - private static Collection getAncestorDeclarations(Element target) { - Vector ancestors = new Vector(); - - Document doc = target.getOwnerDocument(); - ModelQuery query = ModelQueryUtil.getModelQuery(doc); - CMElementDeclaration decl = query.getCMElementDeclaration(target); - ancestors.add(decl); - - Element parent = getParent(target); - while (parent != null) { - decl = query.getCMElementDeclaration(parent); - if (decl != null) - ancestors.add(decl); - parent = getParent(parent); - } - return ancestors; - } - - private static void addInclusion(Hashtable availables, CMElementDeclaration decl) { - String name = decl.getElementName(); - if (availables.containsKey(name)) - return; - availables.put(name, decl); - } - - private static Collection gatherInclusions(Collection ancestors) { - Vector inclusions = new Vector(); - Iterator iter = ancestors.iterator(); - while (iter.hasNext()) { - CMElementDeclaration decl = (CMElementDeclaration) iter.next(); - if (decl.supports(HTMLCMProperties.INCLUSION)) { - CMContent inclusion = (CMContent) decl.getProperty(HTMLCMProperties.INCLUSION); - if (inclusion != null) - inclusions.add(inclusion); - } - } - return inclusions; - } - - private static Element getParent(Node target) { - Node parent = target.getParentNode(); - while (parent != null) { - if (parent.getNodeType() == Node.ELEMENT_NODE) - return (Element) parent; - parent = parent.getParentNode(); - } - return null; - } - - private static void extractDeclarations(Hashtable availables, CMGroup group) { - CMNodeList content = group.getChildNodes(); - for (int i = 0; i < content.getLength(); i++) { - CMNode cmn = content.item(i); - if (cmn == null || cmn.getNodeType() != CMNode.ELEMENT_DECLARATION) - continue; - addInclusion(availables, (CMElementDeclaration) cmn); - } - } -} |