diff options
Diffstat (limited to 'bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryRegistryImpl.java')
-rw-r--r-- | bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryRegistryImpl.java | 210 |
1 files changed, 0 insertions, 210 deletions
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryRegistryImpl.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryRegistryImpl.java deleted file mode 100644 index 78ebf475bc..0000000000 --- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/provisional/registry/AdapterFactoryRegistryImpl.java +++ /dev/null @@ -1,210 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 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 - * Jens Lukowski/Innoopract - initial renaming/restructuring - * - *******************************************************************************/ -package org.eclipse.wst.sse.ui.internal.provisional.registry; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.runtime.Platform; -import org.eclipse.core.runtime.content.IContentType; -import org.eclipse.core.runtime.content.IContentTypeManager; -import org.eclipse.wst.sse.ui.internal.Logger; - - -public class AdapterFactoryRegistryImpl implements AdapterFactoryRegistry, AdapterFactoryRegistryExtension { - - protected final static String ATT_CLASS = "class"; //$NON-NLS-1$ - - private static AdapterFactoryRegistry instance = null; - - static synchronized public AdapterFactoryRegistry getInstance() { - if (instance == null) { - instance = new AdapterFactoryRegistryImpl(); - } - return instance; - } - - // this map exists so there is only one provider - // instance not duplicate providers for different content types - private HashMap adapterProviders = null; - - private boolean DEBUG = false; - /** - * This HashMap contains: [contentTypeId -> element2providerMap] | V - * [configurationElement -> AdapterFactoryProvider] - * - */ - private HashMap hashMap = null; - - // providers with no content type associated - // just added through the add(...) method - private HashSet unassociatedProviders = null; - - private AdapterFactoryRegistryImpl() { - super(); - this.hashMap = new HashMap(); - this.unassociatedProviders = new HashSet(); - this.adapterProviders = new HashMap(); - - // doesn't instantiate classes, just stores configuration elements - AdapterFactoryRegistryReader.readRegistry(hashMap); - } - - void add(AdapterFactoryProvider adapterFactoryProvider) { - this.unassociatedProviders.add(adapterFactoryProvider); - } - - public Iterator getAdapterFactories() { - if (DEBUG) { - System.out.println("===================================================================================="); //$NON-NLS-1$ - System.out.println("GETTING ALL ADAPTER FACTORIES"); //$NON-NLS-1$ - } - - List results = new ArrayList(); - - // add providers that have no content type specification - results.addAll(this.unassociatedProviders); - Iterator it = this.hashMap.keySet().iterator(); - String contentTypeId = null; - while (it.hasNext()) { - contentTypeId = (String) it.next(); - - if (DEBUG) - System.out.println(" + for: " + contentTypeId); //$NON-NLS-1$ - - results.addAll(getAdapterFactoriesAsList(contentTypeId)); - } - - if (DEBUG) { - System.out.println("===================================================================================="); //$NON-NLS-1$ - } - - return results.iterator(); - } - - public Iterator getAdapterFactories(String contentTypeID) { - if (DEBUG) { - System.out.println("===================================================================================="); //$NON-NLS-1$ - System.out.println("GETTING ADAPTER FACTORIES for: " + contentTypeID); //$NON-NLS-1$ - } - - List results = new ArrayList(); - - // add providers that have no content type specification - results.addAll(unassociatedProviders); - - // add unknown content type providers (for backwards compatability) - results.addAll(getAdapterFactoriesAsList(AdapterFactoryRegistryReader.UNKNOWN_CONTENT_TYPE)); - - // add providers for specific content type - results.addAll(getAdapterFactoriesAsList(Platform.getContentTypeManager().getContentType(contentTypeID))); - - - if (DEBUG) { - System.out.println("===================================================================================="); //$NON-NLS-1$ - } - - return results.iterator(); - } - - public List getAdapterFactoriesAsList(IContentType contentType) { - IContentType type = contentType; - List results = new ArrayList(); - while (type != null && !type.getId().equals(IContentTypeManager.CT_TEXT)) { - results.addAll(getAdapterFactoriesAsList(type.getId())); - type = type.getBaseType(); - } - return results; - } - - /** - * Using this new API, only AdapterFactoryProviders for a certain content - * type are instantiated. This will allow for the minimum number of - * plugins to be loaded rather than all that implement the adapter factory - * extension point. - * - * @param contentTypeID - * @return - */ - public List getAdapterFactoriesAsList(String contentTypeID) { - - List results = new ArrayList(); - - // get element2Provider map for specified content type - Object o = hashMap.get(contentTypeID); - if (o != null) { - // instantiate if necessary from - // element2adapterFactoryProvider - // map - Map element2Provider = (Map) o; - Iterator it = element2Provider.keySet().iterator(); - IConfigurationElement element = null; - String classname = null; - Object existing = null; - AdapterFactoryProvider p = null; - while (it.hasNext()) { - element = (IConfigurationElement) it.next(); - o = element2Provider.get(element); - if (o != null) { - // this provider has already been created - if (DEBUG) - System.out.println("already created: " + element.getAttribute(ATT_CLASS)); //$NON-NLS-1$ - - results.add(o); - } - else { - // need to create the provider - try { - classname = element.getAttribute(ATT_CLASS); - - if (DEBUG) - System.out.println("about to create: " + classname); //$NON-NLS-1$ - - // check if we created one already - existing = this.adapterProviders.get(classname); - if (existing == null) { - // this is the only place - // AdapterFactoryProviders - // are created - p = (AdapterFactoryProvider) element.createExecutableExtension(ATT_CLASS); // $NON-NLS-1$ - this.adapterProviders.put(classname, p); - } - else { - p = (AdapterFactoryProvider) existing; - } - - // add to element2Provider for this contentType - element2Provider.put(element, p); - // add to results to return for this method - results.add(p); - - } - catch (CoreException e) { - // if the provider throws any exception, just log - // and - // continue - Logger.logException(e); - } - } - } - } - - return results; - } -} |