| Index: editor/tools/plugins/com.google.dart.tools.core/src/com/google/dart/tools/core/internal/model/BundledSystemLibraryManager.java
|
| ===================================================================
|
| --- editor/tools/plugins/com.google.dart.tools.core/src/com/google/dart/tools/core/internal/model/BundledSystemLibraryManager.java (revision 1856)
|
| +++ editor/tools/plugins/com.google.dart.tools.core/src/com/google/dart/tools/core/internal/model/BundledSystemLibraryManager.java (working copy)
|
| @@ -1,159 +0,0 @@
|
| -/*
|
| - * Copyright (c) 2011, the Dart project authors.
|
| - *
|
| - * Licensed under the Eclipse Public License v1.0 (the "License"); you may not use this file except
|
| - * in compliance with the License. You may obtain a copy of the License at
|
| - *
|
| - * http://www.eclipse.org/legal/epl-v10.html
|
| - *
|
| - * Unless required by applicable law or agreed to in writing, software distributed under the License
|
| - * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
|
| - * or implied. See the License for the specific language governing permissions and limitations under
|
| - * the License.
|
| - */
|
| -package com.google.dart.tools.core.internal.model;
|
| -
|
| -import com.google.dart.compiler.SystemLibrary;
|
| -import com.google.dart.tools.core.DartCore;
|
| -import com.google.dart.tools.core.internal.util.Util;
|
| -
|
| -import org.eclipse.core.runtime.IConfigurationElement;
|
| -import org.eclipse.core.runtime.IExtensionPoint;
|
| -import org.eclipse.core.runtime.IExtensionRegistry;
|
| -import org.eclipse.core.runtime.IStatus;
|
| -import org.eclipse.core.runtime.Platform;
|
| -import org.eclipse.core.runtime.Status;
|
| -import org.osgi.framework.Bundle;
|
| -
|
| -import java.net.URI;
|
| -import java.net.URISyntaxException;
|
| -import java.util.ArrayList;
|
| -import java.util.Collection;
|
| -import java.util.HashMap;
|
| -import java.util.Map;
|
| -
|
| -/**
|
| - * Manages the collection of libraries declared using the "libraries" extension point
|
| - */
|
| -public class BundledSystemLibraryManager {
|
| - public static final String BUNDLED_LIBRARY_PREFIX = "com.google.dart.library.";
|
| -
|
| - private static final String LIBRARIES_EXTENSION_POINT_ID = DartCore.PLUGIN_ID + ".libraries";
|
| -
|
| - private static boolean initialized = false;
|
| - private static Collection<String> allLibrarySpecs;
|
| - private static Collection<String> visibleLibrarySpecs;
|
| - private static SystemLibrary[] allLibraries;
|
| - private static Map<URI, URI> longToShortUriMap;
|
| -
|
| - /**
|
| - * Answer an array of all bundled libraries.
|
| - *
|
| - * @return an array of libraries (not <code>null</code>, contains no <code>null</code>s)
|
| - */
|
| - public static SystemLibrary[] getAllLibraries() {
|
| - initLibraries();
|
| - return allLibraries;
|
| - }
|
| -
|
| - /**
|
| - * Answer a collection of all bundled library URL specs (e.g. "dart:dom").
|
| - *
|
| - * @return a collection of specs (not <code>null</code>, contains no <code>null</code>s)
|
| - */
|
| - public static Collection<String> getAllLibrarySpecs() {
|
| - initLibraries();
|
| - return allLibrarySpecs;
|
| - }
|
| -
|
| - /**
|
| - * Answer the original "dart:<libname>" URI for the specified resolved URI or <code>null</code> if
|
| - * it does not map to a
|
| - */
|
| - public static URI getShortUri(URI uri) {
|
| - initLibraries();
|
| - return longToShortUriMap.get(uri);
|
| - }
|
| -
|
| - /**
|
| - * Answer a collection of library URL specs (e.g. "dart:dom") which should be visible to the user
|
| - * for import.
|
| - *
|
| - * @return a collection of specs (not <code>null</code>, contains no <code>null</code>s)
|
| - */
|
| - public static Collection<String> getVisibleLibrarySpecs() {
|
| - initLibraries();
|
| - return visibleLibrarySpecs;
|
| - }
|
| -
|
| - /**
|
| - * Initialize the system libraries based upon the libraries declared using the "libraries"
|
| - * extension point. Use {@link #initLibraries()} to set the system libraries once, and this method
|
| - * when testing to reset the system libraries based upon the libraries declared using the
|
| - * "libraries" extension point.
|
| - */
|
| - private static void computeLibraries() {
|
| - ArrayList<SystemLibrary> libraries = new ArrayList<SystemLibrary>();
|
| - allLibrarySpecs = new ArrayList<String>();
|
| - visibleLibrarySpecs = new ArrayList<String>();
|
| - longToShortUriMap = new HashMap<URI, URI>();
|
| -
|
| - IExtensionRegistry registery = Platform.getExtensionRegistry();
|
| - IExtensionPoint extensionPoint = registery.getExtensionPoint(LIBRARIES_EXTENSION_POINT_ID);
|
| - IConfigurationElement[] elements = extensionPoint.getConfigurationElements();
|
| -
|
| - for (IConfigurationElement elem : elements) {
|
| - String pluginId = elem.getDeclaringExtension().getNamespaceIdentifier();
|
| - String shortName = elem.getAttribute("name");
|
| - if (shortName == null || shortName.length() == 0) {
|
| - warning(pluginId, "missing name attribute");
|
| - continue;
|
| - }
|
| - String host = elem.getAttribute("host");
|
| - if (host == null || host.length() == 0) {
|
| - warning(pluginId, "missing host attribute");
|
| - continue;
|
| - }
|
| - String pathToLib = elem.getAttribute("path");
|
| - if (pathToLib == null || pathToLib.length() == 0) {
|
| - warning(pluginId, "missing path attribute");
|
| - continue;
|
| - }
|
| - Bundle bundle = Platform.getBundle(pluginId);
|
| - BundledSystemLibrary lib = new BundledSystemLibrary(shortName, host, pathToLib, bundle);
|
| - libraries.add(lib);
|
| -
|
| - String libSpec = "dart:" + shortName;
|
| - allLibrarySpecs.add(libSpec);
|
| - boolean visible = !("false".equals(elem.getAttribute("visible")));
|
| - if (visible) {
|
| - visibleLibrarySpecs.add(libSpec);
|
| - }
|
| -
|
| - URI libUri;
|
| - URI expandedUri;
|
| - try {
|
| - libUri = new URI(libSpec);
|
| - expandedUri = new URI("dart://" + host + "/" + pathToLib);
|
| - } catch (URISyntaxException e) {
|
| - throw new AssertionError(e);
|
| - }
|
| - URI resolvedUri = lib.translateUri(expandedUri);
|
| - longToShortUriMap.put(resolvedUri, libUri);
|
| - longToShortUriMap.put(expandedUri, libUri);
|
| - }
|
| - allLibraries = libraries.toArray(new SystemLibrary[libraries.size()]);
|
| - }
|
| -
|
| - private static synchronized void initLibraries() {
|
| - if (!initialized) {
|
| - initialized = true;
|
| - computeLibraries();
|
| - }
|
| - }
|
| -
|
| - private static void warning(String pluginId, String message) {
|
| - Util.log(new Status(IStatus.WARNING, DartCore.PLUGIN_ID, message
|
| - + " in libraries declaration in " + pluginId));
|
| - }
|
| -}
|
|
|