Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/FileTaskScannerRegistryReader.java')
-rw-r--r--bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/FileTaskScannerRegistryReader.java183
1 files changed, 0 insertions, 183 deletions
diff --git a/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/FileTaskScannerRegistryReader.java b/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/FileTaskScannerRegistryReader.java
deleted file mode 100644
index d191e714d4..0000000000
--- a/bundles/org.eclipse.wst.sse.core/src-tasktags/org/eclipse/wst/sse/core/internal/tasks/FileTaskScannerRegistryReader.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2006 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.core.internal.tasks;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-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.IExtensionPoint;
-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.core.internal.Logger;
-import org.eclipse.wst.sse.core.internal.SSECorePlugin;
-import org.eclipse.wst.sse.core.internal.provisional.tasks.IFileTaskScanner;
-import org.eclipse.wst.sse.core.utils.StringUtils;
-
-public class FileTaskScannerRegistryReader {
- private class ScannerInfo {
- String fId;
- IFileTaskScanner fScanner;
-
- ScannerInfo(String id, IFileTaskScanner scanner) {
- super();
- fId = id;
- fScanner = scanner;
- }
-
- public boolean equals(Object obj) {
- return obj instanceof ScannerInfo && fId.equals(((ScannerInfo) obj).fId);
- }
-
- public String getId() {
- return fId;
- }
-
- public IFileTaskScanner getScanner() {
- return fScanner;
- }
- }
-
- private static FileTaskScannerRegistryReader _instance = null;
-
- public static FileTaskScannerRegistryReader getInstance() {
- if (_instance == null) {
- _instance = new FileTaskScannerRegistryReader();
- }
- return _instance;
- }
-
- private String ATT_CLASS = "class"; //$NON-NLS-1$
-
- private String ATT_CONTENT_TYPES = "contentTypeIds"; //$NON-NLS-1$
-
- private String ATT_ID = "id"; //$NON-NLS-1$
-
- private IConfigurationElement[] fScannerElements;
-
- // a mapping from content types to ScannerInfo instances
- private Map fScannerInfos = null;
-
- private String NAME_SCANNER = "scanner"; //$NON-NLS-1$
-
- private String SCANNER_EXTENSION_POINT_ID = SSECorePlugin.ID + ".taskscanner"; //$NON-NLS-1$
-
- private FileTaskScannerRegistryReader() {
- super();
- }
-
- IFileTaskScanner[] getFileTaskScanners(IContentType[] contentTypes) {
- if (fScannerElements == null) {
- readRegistry();
- }
-
- List scannerInfos = new ArrayList(1);
-
- for (int i = 0; i < contentTypes.length; i++) {
- ScannerInfo[] scannerInfosForContentType = (ScannerInfo[]) fScannerInfos.get(contentTypes[i].getId());
- if (scannerInfosForContentType == null) {
- scannerInfosForContentType = loadScanners(contentTypes[i]);
- }
- // only add non-duplicate scanners
- for (int j = 0; j < scannerInfosForContentType.length; j++) {
- if (!scannerInfos.contains(scannerInfosForContentType[j])) {
- scannerInfos.add(scannerInfosForContentType[j]);
- }
- }
- }
- IFileTaskScanner[] scanners = new IFileTaskScanner[scannerInfos.size()];
- for (int i = 0; i < scanners.length; i++) {
- scanners[i] = ((ScannerInfo) scannerInfos.get(i)).getScanner();
- }
- return scanners;
- }
-
- public String[] getSupportedContentTypeIds() {
- if (fScannerElements == null) {
- readRegistry();
- }
-
- // find the relevant extensions
- List types = new ArrayList(0);
- IConfigurationElement[] scannerElements = fScannerElements;
- for (int j = 0; j < scannerElements.length; j++) {
- if (!scannerElements[j].getName().equals(NAME_SCANNER))
- continue;
- String[] contentTypeIds = StringUtils.unpack(scannerElements[j].getAttribute(ATT_CONTENT_TYPES));
- for (int i = 0; i < contentTypeIds.length; i++) {
- if (!types.contains(contentTypeIds[i])) {
- types.add(contentTypeIds[i]);
- }
- }
- }
-
- return (String[]) types.toArray(new String[types.size()]);
- }
-
- private ScannerInfo[] loadScanners(IContentType contentType) {
- List elements = new ArrayList(0);
- ScannerInfo[] scannerInfos = null;
- IConfigurationElement[] delegateElements = fScannerElements;
- if (contentType != null) {
- IContentTypeManager contentTypeManager = Platform.getContentTypeManager();
- for (int j = 0; j < delegateElements.length; j++) {
- if (!delegateElements[j].getName().equals(NAME_SCANNER))
- continue;
- String[] supportedContentTypeIds = StringUtils.unpack(delegateElements[j].getAttribute(ATT_CONTENT_TYPES));
- IContentType[] supportedContentTypes = new IContentType[supportedContentTypeIds.length];
- for (int k = 0; k < supportedContentTypeIds.length; k++) {
- supportedContentTypes[k] = contentTypeManager.getContentType(supportedContentTypeIds[k].trim());
- }
- for (int k = 0; k < supportedContentTypeIds.length; k++) {
- // allow subtypes to be returned as well
- if (supportedContentTypes[k] != null && contentType.isKindOf(supportedContentTypes[k])) {
- elements.add(delegateElements[j]);
- }
- }
- }
- // instantiate and save the scanners
- List scannerInfoList = new ArrayList(elements.size());
- for (int i = 0; i < elements.size(); i++) {
- try {
- IFileTaskScanner scanner = (IFileTaskScanner) ((IConfigurationElement) elements.get(i)).createExecutableExtension(ATT_CLASS);
- if (scanner != null) {
- scannerInfoList.add(new ScannerInfo(((IConfigurationElement) elements.get(i)).getAttribute(ATT_ID), scanner));
- }
- }
- catch (CoreException e) {
- Logger.logException("Non-fatal exception creating task scanner for " + contentType.getId(), e); //$NON-NLS-1$
- }
- }
- scannerInfos = (ScannerInfo[]) scannerInfoList.toArray(new ScannerInfo[scannerInfoList.size()]);
- fScannerInfos.put(contentType.getId(), scannerInfos);
- if (Logger.DEBUG_TASKSREGISTRY) {
- System.out.println("Created " + scannerInfos.length + " task scanner for " + contentType.getId()); //$NON-NLS-1$ //$NON-NLS-2$
- }
- }
- return scannerInfos;
- }
-
- private void readRegistry() {
- fScannerInfos = new HashMap();
- // Just remember the elements, so plugins don't have to be activated,
- // unless extension attributes match those of interest
- IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(SCANNER_EXTENSION_POINT_ID);
- if (point != null) {
- fScannerElements = point.getConfigurationElements();
- }
- }
-}

Back to the top