Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'extraplugins/epf-richtext/org.eclipse.epf.common/src/org/eclipse/epf/common/utils/ExtensionHelper.java')
-rw-r--r--extraplugins/epf-richtext/org.eclipse.epf.common/src/org/eclipse/epf/common/utils/ExtensionHelper.java216
1 files changed, 0 insertions, 216 deletions
diff --git a/extraplugins/epf-richtext/org.eclipse.epf.common/src/org/eclipse/epf/common/utils/ExtensionHelper.java b/extraplugins/epf-richtext/org.eclipse.epf.common/src/org/eclipse/epf/common/utils/ExtensionHelper.java
deleted file mode 100644
index 2745046f8c6..00000000000
--- a/extraplugins/epf-richtext/org.eclipse.epf.common/src/org/eclipse/epf/common/utils/ExtensionHelper.java
+++ /dev/null
@@ -1,216 +0,0 @@
-//------------------------------------------------------------------------------
-//Copyright (c) 2005, 2008 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 implementation
-//------------------------------------------------------------------------------
-package org.eclipse.epf.common.utils;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.epf.common.CommonPlugin;
-import org.eclipse.epf.common.IHTMLFormatter;
-import org.eclipse.epf.common.IHTMLParser;
-import org.osgi.framework.Bundle;
-
-/**
-* Helper class with methods to retrieve extensions
-* Moved part of org.eclipse.epf.library.edit.util.ExtensionManager, to allow
-* access by classes that have no dependency on org.eclipse.epf.library.edit
-*
-* @author Phong Nguyen Le
-* @author Weiping Lu
-* @since 1.5
-*/
-public class ExtensionHelper {
- private static Map IDToExtensionMap = new HashMap();
-
- public static Object createExtension(String namespace, String extensionPointName) {
- // Process the contributors.
- //
- IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
- IExtensionPoint extensionPoint = extensionRegistry.getExtensionPoint(namespace, extensionPointName);
- if (extensionPoint != null) {
- IExtension[] extensions = extensionPoint.getExtensions();
- Object ext = null;
- ext_walk:
- for (int i = 0; i < extensions.length; i++) {
- IExtension extension = extensions[i];
- String pluginId = extension.getNamespaceIdentifier();
- Bundle bundle = Platform.getBundle(pluginId);
- IConfigurationElement[] configElements = extension
- .getConfigurationElements();
- for (int j = 0; j < configElements.length; j++) {
- IConfigurationElement configElement = configElements[j];
- try {
- String className = configElement.getAttribute("class"); //$NON-NLS-1$
- if(className != null) {
- ext = bundle.loadClass(className).newInstance();
- break ext_walk;
- }
- } catch (Exception e) {
- CommonPlugin.getDefault().getLogger().logError(e);
- }
- }
- }
- return ext;
- }
- return null;
- }
-
- public static Object getExtension(String namespace, String extensionPointName) {
- String ID = namespace + '.' + extensionPointName;
- Object ext = IDToExtensionMap.get(ID);
- if(ext == null) {
- synchronized (IDToExtensionMap) {
- ext = IDToExtensionMap.get(ID);
- if(ext == null) {
- ext = createExtension(namespace, extensionPointName);
- if(ext != null) {
- IDToExtensionMap.put(ID, ext);
- }
- }
- }
-
- }
- return ext;
- }
-
- /**
- * This is a special method to handle JTidy extensions
- *
- */
- public static Object createExtensionForJTidy(String namespace, String extensionPointName) {
- List<IHTMLFormatter> formaters = new ArrayList<IHTMLFormatter>();
- List<IHTMLParser> parsers = new ArrayList<IHTMLParser>();
-
- IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
- IExtensionPoint extensionPoint = extensionRegistry.getExtensionPoint(namespace, extensionPointName);
- if (extensionPoint != null) {
- IExtension[] extensions = extensionPoint.getExtensions();
- for (int i = 0; i < extensions.length; i++) {
- IExtension extension = extensions[i];
- String pluginId = extension.getNamespaceIdentifier();
- Bundle bundle = Platform.getBundle(pluginId);
- IConfigurationElement[] configElements = extension.getConfigurationElements();
- for (int j = 0; j < configElements.length; j++) {
- IConfigurationElement configElement = configElements[j];
- try {
- String className = configElement.getAttribute("class"); //$NON-NLS-1$
- if(className != null) {
- Object obj = bundle.loadClass(className).newInstance();
- if (extensionPointName.equals("htmlFormatter")) { //$NON-NLS-1$
- formaters.add((IHTMLFormatter)obj);
- } else if (extensionPointName.equals("htmlParser")) { //$NON-NLS-1$
- parsers.add((IHTMLParser)obj);
- }
- }
- } catch (Exception e) {
- CommonPlugin.getDefault().getLogger().logError(e);
- }
- }
- }
-
- if (formaters.size() > 0) {
- if (formaters.size() == 1) {
- return formaters.get(0);
- }
- return selectExtension(formaters);
- } else if (parsers.size() > 0) {
- if (parsers.size() == 1) {
- return parsers.get(0);
- }
- return selectExtension(parsers);
- }
- }
-
- return null;
- }
-
- private static Object selectExtension(List objs) {
- for (Object obj : objs) {
- String name = obj.getClass().getName();
- if (!(name.equals("org.eclipse.epf.common.html.DefaultHTMLFormatter") //$NON-NLS-1$
- || name.equals("org.eclipse.epf.common.html.DefaultHTMLParser"))) { //$NON-NLS-1$
- return obj;
- }
- }
-
- return null;
- }
-
- public static IMarkerAttributeContributer getMarkerAttributeContributer() {
- IMarkerAttributeContributer ret = (IMarkerAttributeContributer) getExtension(
- CommonPlugin.getDefault().getId(), "markerAttributeContributer");//$NON-NLS-1$
- return ret;
- }
-
- /**
- * Create object based on type and context through extension
- * @param type
- * @param context
- * @return created object or null if no extension is found
- */
- public static Object create(Class type, Object context) {
- IObjectFactory ret = (IObjectFactory) getExtension(
- CommonPlugin.getDefault().getId(), "objectFactory");//$NON-NLS-1$
- if (ret == null) {
- return null;
- }
- return ret.create(type, context);
- }
-
- public static <T>List<T> getExtensions(String namespace, String extensionPointName, Class<T> type) {
- List<T> list = new ArrayList<T>();
- try {
- IExtensionRegistry extensionRegistry = Platform.getExtensionRegistry();
- IExtensionPoint extensionPoint = extensionRegistry.getExtensionPoint(namespace, extensionPointName);
- if (extensionPoint != null) {
- IExtension[] extensions = extensionPoint.getExtensions();
- for (int i = 0; i < extensions.length; i++) {
- IExtension extension = extensions[i];
- String pluginId = extension.getNamespaceIdentifier();
- Bundle bundle = Platform.getBundle(pluginId);
- IConfigurationElement[] configElements = extension
- .getConfigurationElements();
- for (int j = 0; j < configElements.length; j++) {
- IConfigurationElement configElement = configElements[j];
- try {
- String className = configElement.getAttribute("class"); //$NON-NLS-1$
- if(className != null) {
- Object ext = bundle.loadClass(className).newInstance();
- if(type.isInstance(ext)) {
- list.add((T)ext);
- }
- }
- } catch (Exception e) {
- CommonPlugin.getDefault().getLogger().logError(e);
- }
- }
- }
- }
- }
- catch(Exception e) {
- CommonPlugin.getDefault().getLogger().logError(e);
- }
- if(list.isEmpty()) {
- return Collections.<T>emptyList();
- }
- return list;
- }
-
-
-}

Back to the top