Mercurial > projects > dwt-addons
diff dwtx/core/runtime/Platform.d @ 158:25f1f92fa3df
...
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Tue, 26 Aug 2008 02:46:34 +0200 |
parents | |
children | 7926b636c282 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dwtx/core/runtime/Platform.d Tue Aug 26 02:46:34 2008 +0200 @@ -0,0 +1,1570 @@ +/******************************************************************************* + * Copyright (c) 2000, 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 API and implementation + * Port to the D programming language: + * Frank Benoit <benoit@tionex.de> + *******************************************************************************/ +module dwtx.core.runtime.Platform; + +import dwt.dwthelper.utils; + +// import java.io.IOException; +// import java.lang.reflect.Method; +// import java.net.URL; +// import java.util.HashMap; +// import java.util.Map; +// import java.util.MissingResourceException; +// import java.util.ResourceBundle; +// +// import org.osgi.framework.Bundle; +// import org.osgi.service.packageadmin.PackageAdmin; +// +// import dwtx.core.internal.runtime.CompatibilityHelper; +// import dwtx.core.internal.runtime.InternalPlatform; +// import dwtx.core.internal.runtime.Messages; +// import dwtx.core.internal.runtime.PlatformActivator; +// import dwtx.core.internal.runtime.auth.AuthorizationHandler; +// import dwtx.core.runtime.content.IContentTypeManager; +// import dwtx.core.runtime.jobs.IJobManager; +// import dwtx.core.runtime.jobs.Job; +// import dwtx.core.runtime.preferences.IPreferencesService; +// import dwtx.osgi.service.datalocation.Location; +// import dwtx.osgi.service.debug.DebugOptions; +// import dwtx.osgi.service.environment.EnvironmentInfo; +// import dwtx.osgi.service.resolver.PlatformAdmin; + +/** + * The central class of the Eclipse Platform Runtime. This class cannot + * be instantiated or subclassed by clients; all functionality is provided + * by static methods. Features include: + * <ul> + * <li>the platform registry of installed plug-ins</li> + * <li>the platform adapter manager</li> + * <li>the platform log</li> + * <li>the authorization info management</li> + * </ul> + * <p> + * Most users don't have to worry about Platform's lifecycle. However, if your + * code can call methods of this class when Platform is not running, it becomes + * necessary to check {@link #isRunning()} before making the call. A runtime + * exception might be thrown or incorrect result might be returned if a method + * from this class is called while Platform is not running. + * </p> + */ +public final class Platform { + +// /** +// * The unique identifier constant (value "<code>dwtx.core.runtime</code>") +// * of the Core Runtime (pseudo-) plug-in. +// */ +// public static final String PI_RUNTIME = "dwtx.core.runtime"; //$NON-NLS-1$ +// +// /** +// * The simple identifier constant (value "<code>applications</code>") of +// * the extension point of the Core Runtime plug-in where plug-ins declare +// * the existence of runnable applications. A plug-in may define any +// * number of applications; however, the platform is only capable +// * of running one application at a time. +// * +// */ +// public static final String PT_APPLICATIONS = "applications"; //$NON-NLS-1$ +// +// /** +// * The simple identifier constant (value "<code>adapters</code>") of +// * the extension point of the Core Runtime plug-in where plug-ins declare +// * the existence of adapter factories. A plug-in may define any +// * number of adapters. +// * +// * @see IAdapterManager#hasAdapter(Object, String) +// * @since 3.0 +// */ +// public static final String PT_ADAPTERS = "adapters"; //$NON-NLS-1$ +// +// /** +// * The simple identifier constant (value "<code>preferences</code>") of +// * the extension point of the Core Runtime plug-in where plug-ins declare +// * extensions to the preference facility. A plug-in may define any number +// * of preference extensions. +// * +// * @see #getPreferencesService() +// * @since 3.0 +// */ +// public static final String PT_PREFERENCES = Preferences.PT_PREFERENCES; +// +// /** +// * The simple identifier constant (value "<code>products</code>") of +// * the extension point of the Core Runtime plug-in where plug-ins declare +// * the existence of a product. A plug-in may define any +// * number of products; however, the platform is only capable +// * of running one product at a time. +// * +// * @see #getProduct() +// * @since 3.0 +// */ +// public static final String PT_PRODUCT = "products"; //$NON-NLS-1$ +// +// /** +// * Debug option value denoting the time at which the platform runtime +// * was started. This constant can be used in conjunction with +// * <code>getDebugOption</code> to find the string value of +// * <code>System.currentTimeMillis()</code> when the platform was started. +// */ +// public static final String OPTION_STARTTIME = PI_RUNTIME + "/starttime"; //$NON-NLS-1$ +// +// /** +// * Name of a preference for configuring the performance level for this system. +// * +// * <p> +// * This value can be used by all components to customize features to suit the +// * speed of the user's machine. The platform job manager uses this value to make +// * scheduling decisions about background jobs. +// * </p> +// * <p> +// * The preference value must be an integer between the constant values +// * MIN_PERFORMANCE and MAX_PERFORMANCE +// * </p> +// * @see #MIN_PERFORMANCE +// * @see #MAX_PERFORMANCE +// * @since 3.0 +// */ +// public static final String PREF_PLATFORM_PERFORMANCE = "runtime.performance"; //$NON-NLS-1$ +// +// /** +// * Constant (value "line.separator") name of the preference used for storing +// * the line separator. +// * +// * @see #knownPlatformLineSeparators +// * @since 3.1 +// */ +// public static final String PREF_LINE_SEPARATOR = "line.separator"; //$NON-NLS-1$ +// +// /** +// * Constant (value 1) indicating the minimum allowed value for the +// * <code>PREF_PLATFORM_PERFORMANCE</code> preference setting. +// * @since 3.0 +// */ +// public static final int MIN_PERFORMANCE = 1; +// +// /** +// * Constant (value 5) indicating the maximum allowed value for the +// * <code>PREF_PLATFORM_PERFORMANCE</code> preference setting. +// * @since 3.0 +// */ +// public static final int MAX_PERFORMANCE = 5; +// +// /** +// * Status code constant (value 1) indicating a problem in a plug-in +// * manifest (<code>plugin.xml</code>) file. +// */ +// public static final int PARSE_PROBLEM = 1; +// +// /** +// * Status code constant (value 2) indicating an error occurred while running a plug-in. +// */ +// public static final int PLUGIN_ERROR = 2; +// +// /** +// * Status code constant (value 3) indicating an error internal to the +// * platform has occurred. +// */ +// public static final int INTERNAL_ERROR = 3; +// +// /** +// * Status code constant (value 4) indicating the platform could not read +// * some of its metadata. +// */ +// public static final int FAILED_READ_METADATA = 4; +// +// /** +// * Status code constant (value 5) indicating the platform could not write +// * some of its metadata. +// */ +// public static final int FAILED_WRITE_METADATA = 5; +// +// /** +// * Status code constant (value 6) indicating the platform could not delete +// * some of its metadata. +// */ +// public static final int FAILED_DELETE_METADATA = 6; +// +// /** +// * Constant string (value "win32") indicating the platform is running on a +// * Window 32-bit operating system (e.g., Windows 98, NT, 2000). +// * <p> +// * Note this constant has been moved from the deprecated +// * dwtx.core.boot.BootLoader class and its value has not changed. +// * </p> +// * @since 3.0 +// */ +// public static final String OS_WIN32 = "win32";//$NON-NLS-1$ +// +// /** +// * Constant string (value "linux") indicating the platform is running on a +// * Linux-based operating system. +// * <p> +// * Note this constant has been moved from the deprecated +// * dwtx.core.boot.BootLoader class and its value has not changed. +// * </p> +// * @since 3.0 +// */ +// public static final String OS_LINUX = "linux";//$NON-NLS-1$ +// +// /** +// * Constant string (value "aix") indicating the platform is running on an +// * AIX-based operating system. +// * <p> +// * Note this constant has been moved from the deprecated +// * dwtx.core.boot.BootLoader class and its value has not changed. +// * </p> +// * @since 3.0 +// */ +// public static final String OS_AIX = "aix";//$NON-NLS-1$ +// +// /** +// * Constant string (value "solaris") indicating the platform is running on a +// * Solaris-based operating system. +// * <p> +// * Note this constant has been moved from the deprecated +// * dwtx.core.boot.BootLoader class and its value has not changed. +// * </p> +// * @since 3.0 +// */ +// public static final String OS_SOLARIS = "solaris";//$NON-NLS-1$ +// +// /** +// * Constant string (value "hpux") indicating the platform is running on an +// * HP/UX-based operating system. +// * <p> +// * Note this constant has been moved from the deprecated +// * dwtx.core.boot.BootLoader class and its value has not changed. +// * </p> +// * @since 3.0 +// */ +// public static final String OS_HPUX = "hpux";//$NON-NLS-1$ +// +// /** +// * Constant string (value "qnx") indicating the platform is running on a +// * QNX-based operating system. +// * <p> +// * Note this constant has been moved from the deprecated +// * dwtx.core.boot.BootLoader class and its value has not changed. +// * </p> +// * @since 3.0 +// */ +// public static final String OS_QNX = "qnx";//$NON-NLS-1$ +// +// /** +// * Constant string (value "macosx") indicating the platform is running on a +// * Mac OS X operating system. +// * <p> +// * Note this constant has been moved from the deprecated +// * dwtx.core.boot.BootLoader class and its value has not changed. +// * </p> +// * @since 3.0 +// */ +// public static final String OS_MACOSX = "macosx";//$NON-NLS-1$ +// +// /** +// * Constant string (value "unknown") indicating the platform is running on a +// * machine running an unknown operating system. +// * <p> +// * Note this constant has been moved from the deprecated +// * dwtx.core.boot.BootLoader class and its value has not changed. +// * </p> +// * @since 3.0 +// */ +// public static final String OS_UNKNOWN = "unknown";//$NON-NLS-1$ +// +// /** +// * Constant string (value "x86") indicating the platform is running on an +// * x86-based architecture. +// * <p> +// * Note this constant has been moved from the deprecated +// * dwtx.core.boot.BootLoader class and its value has not changed. +// * </p> +// * @since 3.0 +// */ +// public static final String ARCH_X86 = "x86";//$NON-NLS-1$ +// +// /** +// * Constant string (value "PA_RISC") indicating the platform is running on an +// * PA_RISC-based architecture. +// * <p> +// * Note this constant has been moved from the deprecated +// * dwtx.core.boot.BootLoader class and its value has not changed. +// * </p> +// * @since 3.0 +// */ +// public static final String ARCH_PA_RISC = "PA_RISC";//$NON-NLS-1$ +// +// /** +// * Constant string (value "ppc") indicating the platform is running on an +// * PowerPC-based architecture. +// * <p> +// * Note this constant has been moved from the deprecated +// * dwtx.core.boot.BootLoader class and its value has not changed. +// * </p> +// * @since 3.0 +// */ +// public static final String ARCH_PPC = "ppc";//$NON-NLS-1$ +// +// /** +// * Constant string (value "sparc") indicating the platform is running on an +// * Sparc-based architecture. +// * <p> +// * Note this constant has been moved from the deprecated +// * dwtx.core.boot.BootLoader class and its value has not changed. +// * </p> +// * @since 3.0 +// */ +// public static final String ARCH_SPARC = "sparc";//$NON-NLS-1$ +// +// /** +// * Constant string (value "x86_64") indicating the platform is running on an +// * x86 64bit-based architecture. +// * +// * @since 3.1 +// */ +// public static final String ARCH_X86_64 = "x86_64";//$NON-NLS-1$ +// +// /** +// * Constant string (value "amd64") indicating the platform is running on an +// * AMD64-based architecture. +// * +// * @since 3.0 +// * @deprecated use <code>ARCH_X86_64</code> instead. Note the values +// * has been changed to be the value of the <code>ARCH_X86_64</code> constant. +// */ +// public static final String ARCH_AMD64 = ARCH_X86_64; +// +// /** +// * Constant string (value "ia64") indicating the platform is running on an +// * IA64-based architecture. +// * +// * @since 3.0 +// */ +// public static final String ARCH_IA64 = "ia64"; //$NON-NLS-1$ +// +// /** +// * Constant string (value "ia64_32") indicating the platform is running on an +// * IA64 32bit-based architecture. +// * +// * @since 3.1 +// */ +// public static final String ARCH_IA64_32 = "ia64_32";//$NON-NLS-1$ +// +// /** +// * Constant string (value "win32") indicating the platform is running on a +// * machine using the Windows windowing system. +// * <p> +// * Note this constant has been moved from the deprecated +// * dwtx.core.boot.BootLoader class and its value has not changed. +// * </p> +// * @since 3.0 +// */ +// public static final String WS_WIN32 = "win32";//$NON-NLS-1$ +// +// /** +// * Constant string (value "motif") indicating the platform is running on a +// * machine using the Motif windowing system. +// * <p> +// * Note this constant has been moved from the deprecated +// * dwtx.core.boot.BootLoader class and its value has not changed. +// * </p> +// * @since 3.0 +// */ +// public static final String WS_MOTIF = "motif";//$NON-NLS-1$ +// +// /** +// * Constant string (value "gtk") indicating the platform is running on a +// * machine using the GTK windowing system. +// * <p> +// * Note this constant has been moved from the deprecated +// * dwtx.core.boot.BootLoader class and its value has not changed. +// * </p> +// * @since 3.0 +// */ +// public static final String WS_GTK = "gtk";//$NON-NLS-1$ +// +// /** +// * Constant string (value "photon") indicating the platform is running on a +// * machine using the Photon windowing system. +// * <p> +// * Note this constant has been moved from the deprecated +// * dwtx.core.boot.BootLoader class and its value has not changed. +// * </p> +// * @since 3.0 +// */ +// public static final String WS_PHOTON = "photon";//$NON-NLS-1$ +// +// /** +// * Constant string (value "carbon") indicating the platform is running on a +// * machine using the Carbon windowing system (Mac OS X). +// * <p> +// * Note this constant has been moved from the deprecated +// * dwtx.core.boot.BootLoader class and its value has not changed. +// * </p> +// * @since 3.0 +// */ +// public static final String WS_CARBON = "carbon";//$NON-NLS-1$ +// +// /** +// * Constant string (value "wpf") indicating the platform is running on a +// * machine using the WPF windowing system. +// * @since 3.3 +// */ +// public static final String WS_WPF = "wpf";//$NON-NLS-1$ +// +// /** +// * Constant string (value "unknown") indicating the platform is running on a +// * machine running an unknown windowing system. +// * <p> +// * Note this constant has been moved from the deprecated +// * dwtx.core.boot.BootLoader class and its value has not changed. +// * </p> +// * @since 3.0 +// */ +// public static final String WS_UNKNOWN = "unknown";//$NON-NLS-1$ +// +// // private constants for platform line separators and their associated platform names +// private static final String LINE_SEPARATOR_KEY_MAC_OS_9 = Messages.line_separator_platform_mac_os_9; +// private static final String LINE_SEPARATOR_KEY_UNIX = Messages.line_separator_platform_unix; +// private static final String LINE_SEPARATOR_KEY_WINDOWS = Messages.line_separator_platform_windows; +// +// private static final String LINE_SEPARATOR_VALUE_CR = "\r"; //$NON-NLS-1$ +// private static final String LINE_SEPARATOR_VALUE_LF = "\n"; //$NON-NLS-1$ +// private static final String LINE_SEPARATOR_VALUE_CRLF = "\r\n"; //$NON-NLS-1$ +// +// /** +// * Private constructor to block instance creation. +// */ +// private Platform() { +// super(); +// } +// +// /** +// * Adds the given authorization information to the key ring. The +// * information is relevant for the specified protection space and the +// * given authorization scheme. The protection space is defined by the +// * combination of the given server URL and realm. The authorization +// * scheme determines what the authorization information contains and how +// * it should be used. The authorization information is a <code>Map</code> +// * of <code>String</code> to <code>String</code> and typically +// * contains information such as user names and passwords. +// * +// * @param serverUrl the URL identifying the server for this authorization +// * information. For example, "http://www.example.com/". +// * @param realm the subsection of the given server to which this +// * authorization information applies. For example, +// * "realm1@example.com" or "" for no realm. +// * @param authScheme the scheme for which this authorization information +// * applies. For example, "Basic" or "" for no authorization scheme +// * @param info a <code>Map</code> containing authorization information +// * such as user names and passwords (key type : <code>String</code>, +// * value type : <code>String</code>) +// * @exception CoreException if there are problems setting the +// * authorization information. Reasons include: +// * <ul> +// * <li>The keyring could not be saved.</li> +// * </ul> +// * @deprecated Authorization database is superseded by the Equinox secure storage. +// * Use <code>dwtx.equinox.security.storage.SecurePreferencesFactory</code> +// * to obtain secure preferences and <code>dwtx.equinox.security.storage.ISecurePreferences</code> +// * for data access and modifications. +// * Consider using <code>ISecurePreferences#put(String, String, bool)</code> as a replacement of this method. +// */ +// public static void addAuthorizationInfo(URL serverUrl, String realm, String authScheme, Map info) throws CoreException { +// try { +// AuthorizationHandler.addAuthorizationInfo(serverUrl, realm, authScheme, info); +// } catch (NoClassDefFoundError e) { +// // The authorization code is not available so just log and continue +// logAuthNotAvailable(e); +// } +// } +// +// /** +// * Adds the given log listener to the notification list of the platform. +// * <p> +// * Once registered, a listener starts receiving notification as entries +// * are added to plug-in logs via <code>ILog.log()</code>. The listener continues to +// * receive notifications until it is replaced or removed. +// * </p> +// * +// * @param listener the listener to register +// * @see ILog#addLogListener(ILogListener) +// * @see #removeLogListener(ILogListener) +// * XXX Use the LogMgr service. +// */ +// public static void addLogListener(ILogListener listener) { +// InternalPlatform.getDefault().addLogListener(listener); +// } +// +// /** +// * Adds the specified resource to the protection space specified by the +// * given realm. All targets at or deeper than the depth of the last +// * symbolic element in the path of the given resource URL are assumed to +// * be in the same protection space. +// * +// * @param resourceUrl the URL identifying the resources to be added to +// * the specified protection space. For example, +// * "http://www.example.com/folder/". +// * @param realm the name of the protection space. For example, +// * "realm1@example.com" +// * @exception CoreException if there are problems setting the +// * authorization information. Reasons include: +// * <ul> +// * <li>The key ring could not be saved.</li> +// * </ul> +// * @deprecated Authorization database is superseded by the Equinox secure storage. +// * Use <code>dwtx.equinox.security.storage.SecurePreferencesFactory</code> +// * to obtain secure preferences and <code>dwtx.equinox.security.storage.ISecurePreferences</code> +// * for data access and modifications. +// */ +// public static void addProtectionSpace(URL resourceUrl, String realm) throws CoreException { +// try { +// AuthorizationHandler.addProtectionSpace(resourceUrl, realm); +// } catch (NoClassDefFoundError e) { +// // The authorization code is not available so just log and continue +// logAuthNotAvailable(e); +// } +// } +// +// /** +// * Returns a URL that is the local equivalent of the +// * supplied URL. This method is expected to be used with the +// * plug-in-relative URLs returned by IPluginDescriptor, Bundle.getEntry() +// * and Platform.find(). +// * If the specified URL is not a plug-in-relative URL, it +// * is returned as is. If the specified URL is a plug-in-relative +// * URL of a file (including .jar archive), it is returned as +// * a locally accessible URL using "file:" protocol +// * (extracting/caching the file locally, if required). If the specified URL +// * is a plug-in-relative URL of a directory, the directory and any files and directories +// * under it are made locally accessible likewise. +// * +// * @param url original plug-in-relative URL. +// * @return the resolved URL +// * @exception IOException if unable to resolve URL +// * @see #resolve(URL) +// * @see #find(Bundle, IPath) +// * @see Bundle#getEntry(String) +// * @deprecated use {@link FileLocator#toFileURL(URL)} instead +// */ +// public static URL asLocalURL(URL url) throws IOException { +// return FileLocator.toFileURL(url); +// } +// +// /** +// * Takes down the splash screen if one was put up. +// * XXX this is application life cycle. Need to have the appropriate method on IApplication. +// */ +// public static void endSplash() { +// InternalPlatform.getDefault().endSplash(); +// } +// +// /** +// * Removes the authorization information for the specified protection +// * space and given authorization scheme. The protection space is defined +// * by the given server URL and realm. +// * +// * @param serverUrl the URL identifying the server to remove the +// * authorization information for. For example, +// * "http://www.example.com/". +// * @param realm the subsection of the given server to remove the +// * authorization information for. For example, +// * "realm1@example.com" or "" for no realm. +// * @param authScheme the scheme for which the authorization information +// * to remove applies. For example, "Basic" or "" for no +// * authorization scheme. +// * @exception CoreException if there are problems removing the +// * authorization information. Reasons include: +// * <ul> +// * <li>The keyring could not be saved.</li> +// * </ul> +// * @deprecated Authorization database is superseded by the Equinox secure storage. +// * Use <code>dwtx.equinox.security.storage.SecurePreferencesFactory</code> +// * to obtain secure preferences and <code>dwtx.equinox.security.storage.ISecurePreferences</code> +// * for data access and modifications. +// * Consider using <code>ISecurePreferences#clear()</code> as a replacement of this method. +// */ +// public static void flushAuthorizationInfo(URL serverUrl, String realm, String authScheme) throws CoreException { +// try { +// AuthorizationHandler.flushAuthorizationInfo(serverUrl, realm, authScheme); +// } catch (NoClassDefFoundError e) { +// // The authorization code is not available so just log and continue +// logAuthNotAvailable(e); +// } +// } +// +// private static void logAuthNotAvailable(Throwable e) { +// InternalPlatform.getDefault().log(new Status(IStatus.WARNING, Platform.PI_RUNTIME, 0, Messages.auth_notAvailable, null)); +// } +// +// /** +// * Returns the adapter manager used for extending +// * <code>IAdaptable</code> objects. +// * +// * @return the adapter manager for this platform +// * @see IAdapterManager +// * XXX register as a service (same pattern than Jobs) +// * Do we want to make it available as a singleton? +// */ +// public static IAdapterManager getAdapterManager() { +// return InternalPlatform.getDefault().getAdapterManager(); +// } +// +// /** +// * Returns the authorization information for the specified protection +// * space and given authorization scheme. The protection space is defined +// * by the given server URL and realm. Returns <code>null</code> if no +// * such information exists. +// * +// * @param serverUrl the URL identifying the server for the authorization +// * information. For example, "http://www.example.com/". +// * @param realm the subsection of the given server to which the +// * authorization information applies. For example, +// * "realm1@example.com" or "" for no realm. +// * @param authScheme the scheme for which the authorization information +// * applies. For example, "Basic" or "" for no authorization scheme +// * @return the authorization information for the specified protection +// * space and given authorization scheme, or <code>null</code> if no +// * such information exists +// * @deprecated Authorization database is superseded by the Equinox secure storage. +// * Use <code>dwtx.equinox.security.storage.SecurePreferencesFactory</code> +// * to obtain secure preferences and <code>dwtx.equinox.security.storage.ISecurePreferences</code> +// * for data access and modifications. +// * Consider using <code>ISecurePreferences#get(String, String)</code> as a replacement of this method. +// */ +// public static Map getAuthorizationInfo(URL serverUrl, String realm, String authScheme) { +// try { +// return AuthorizationHandler.getAuthorizationInfo(serverUrl, realm, authScheme); +// } catch (NoClassDefFoundError e) { +// // The authorization code is not available so just log and continue +// logAuthNotAvailable(e); +// } +// return null; +// } +// +// /** +// * Returns the command line args provided to the Eclipse runtime layer when it was first run. +// * The returned value does not include arguments consumed by the lower levels of Eclipse +// * (e.g., OSGi or the launcher). +// * Note that individual platform runnables may be provided with different arguments +// * if they are being run individually rather than with <code>Platform.run()</code>. +// * <p> +// * Clients are also able to acquire the {@link EnvironmentInfo} service and query it for +// * the command-line arguments. +// * </p> +// * @return the command line used to start the platform +// */ +// public static String[] getCommandLineArgs() { +// return InternalPlatform.getDefault().getCommandLineArgs(); +// } +// +// /** +// * Returns the content type manager. +// * <p> +// * Clients are also able to acquire the {@link IContentTypeManager} service. +// * </p> +// * @return the content type manager +// * @since 3.0 +// */ +// public static IContentTypeManager getContentTypeManager() { +// return InternalPlatform.getDefault().getContentTypeManager(); +// } + + /** + * Returns the identified option. <code>null</code> + * is returned if no such option is found. Options are specified + * in the general form <i><plug-in id>/<option-path></i>. + * For example, <code>dwtx.core.runtime/debug</code> + * <p> + * Clients are also able to acquire the {@link DebugOptions} service + * and query it for debug options. + * </p> + * @param option the name of the option to lookup + * @return the value of the requested debug option or <code>null</code> + */ + public static String getDebugOption(String option) { + return true; +// DWT FIXME: impl +// return InternalPlatform.getDefault().getOption(option); + } + +// /** +// * Returns the location of the platform working directory. +// * <p> +// * Callers of this method should consider using <code>getInstanceLocation</code> +// * instead. In various, typically non IDE-related configurations of Eclipse, the platform +// * working directory may not be on the local file system. As such, the more general +// * form of this location is as a URL. +// * </p><p> +// * Alternatively, instead of calling <code>getInstanceLocation</code> clients are +// * able to acquire the {@link Location} service (with the type {@link Location#INSTANCE_FILTER}) +// * and then change the resulting URL to a path. See the javadoc for <code>getInstanceLocation</code> +// * for more details. +// * </p> +// * @return the location of the platform +// * @see #getInstanceLocation() +// */ +// public static IPath getLocation() throws IllegalStateException { +// return InternalPlatform.getDefault().getLocation(); +// } +// +// /** +// * Returns the location of the platform log file. This file may contain information +// * about errors that have previously occurred during this invocation of the Platform. +// * <p> +// * It is recommended not to keep this value, as the log location may vary when an instance +// * location is being set.</p> +// * <p> +// * Note: it is very important that users of this method do not leave the log +// * file open for extended periods of time. Doing so may prevent others +// * from writing to the log file, which could result in important error messages +// * being lost. It is strongly recommended that clients wanting to read the +// * log file for extended periods should copy the log file contents elsewhere, +// * and immediately close the original file.</p> +// * @return the path of the log file on disk. +// * +// * XXX consider making an ILogger interface that listeners can implements and it allows +// * us to implement Platform.getLogLocation() +// */ +// public static IPath getLogFileLocation() { +// return InternalPlatform.getDefault().getMetaArea().getLogLocation(); +// } +// +// /** +// * Returns the plug-in runtime object for the identified plug-in +// * or <code>null</code> if no such plug-in can be found. If +// * the plug-in is defined but not yet activated, the plug-in will +// * be activated before being returned. +// * <p> +// * <b>Note</b>: This method is only able to find and return plug-in +// * objects for plug-ins described using plugin.xml according to the +// * traditional Eclipse conventions. Eclipse 3.0 permits plug-ins to be +// * described in manifest.mf files and to define their own bundle +// * activators. Such plug-ins cannot be discovered by this method.</p> +// * +// * @param id the unique identifier of the desired plug-in +// * (e.g., <code>"com.example.acme"</code>). +// * @return the plug-in runtime object, or <code>null</code> +// * @deprecated +// * This method only works if the compatibility layer is installed and must not be used otherwise. +// * See the comments on {@link IPluginDescriptor#getPlugin()} for details. +// */ +// public static Plugin getPlugin(String id) { +// try { +// IPluginRegistry registry = getPluginRegistry(); +// if (registry is null) +// throw new IllegalStateException(); +// IPluginDescriptor pd = registry.getPluginDescriptor(id); +// if (pd is null) +// return null; +// return pd.getPlugin(); +// } catch (CoreException e) { +// // TODO log the exception +// } +// return null; +// } +// +// /** +// * Returns the plug-in registry for this platform. +// * +// * @return the plug-in registry +// * @see IPluginRegistry +// * @deprecated <code>IPluginRegistry</code> was refactored in Eclipse 3.0. +// * This method only works if the compatibility layer is installed and must not be used otherwise. +// * See the comments on {@link IPluginRegistry} and its methods for details. +// */ +// public static IPluginRegistry getPluginRegistry() { +// Bundle compatibility = InternalPlatform.getDefault().getBundle(CompatibilityHelper.PI_RUNTIME_COMPATIBILITY); +// if (compatibility is null) +// throw new IllegalStateException(); +// +// Class oldInternalPlatform = null; +// try { +// oldInternalPlatform = compatibility.loadClass("dwtx.core.internal.plugins.InternalPlatform"); //$NON-NLS-1$ +// Method getPluginRegistry = oldInternalPlatform.getMethod("getPluginRegistry", null); //$NON-NLS-1$ +// return (IPluginRegistry) getPluginRegistry.invoke(oldInternalPlatform, null); +// } catch (Exception e) { +// //Ignore the exceptions, return null +// } +// return null; +// +// } +// +// /** +// * Returns the location in the local file system of the plug-in +// * state area for the given plug-in. +// * The platform must be running. +// * <p> +// * The plug-in state area is a file directory within the +// * platform's metadata area where a plug-in is free to create files. +// * The content and structure of this area is defined by the plug-in, +// * and the particular plug-in is solely responsible for any files +// * it puts there. It is recommended for plug-in preference settings. +// * </p> +// * +// * @param plugin the plug-in whose state location is returned +// * @return a local file system path +// * @deprecated clients should call <code>getStateLocation</code> instead +// */ +// public static IPath getPluginStateLocation(Plugin plugin) { +// return plugin.getStateLocation(); +// } +// +// /** +// * Returns the protection space (realm) for the specified resource, or +// * <code>null</code> if the realm is unknown. +// * +// * @param resourceUrl the URL of the resource whose protection space is +// * returned. For example, "http://www.example.com/folder/". +// * @return the protection space (realm) for the specified resource, or +// * <code>null</code> if the realm is unknown +// * @deprecated Authorization database is superseded by the Equinox secure storage. +// * Use <code>dwtx.equinox.security.storage.SecurePreferencesFactory</code> +// * to obtain secure preferences and <code>dwtx.equinox.security.storage.ISecurePreferences</code> +// * for data access and modifications. +// */ +// public static String getProtectionSpace(URL resourceUrl) { +// try { +// return AuthorizationHandler.getProtectionSpace(resourceUrl); +// } catch (NoClassDefFoundError e) { +// // The authorization code is not available so just log and continue +// logAuthNotAvailable(e); +// } +// return null; +// } +// +// /** +// * Removes the indicated (identical) log listener from the notification list +// * of the platform. If no such listener exists, no action is taken. +// * +// * @param listener the listener to de-register +// * @see ILog#removeLogListener(ILogListener) +// * @see #addLogListener(ILogListener) +// * XXX Use the LogMgr service. +// */ +// public static void removeLogListener(ILogListener listener) { +// InternalPlatform.getDefault().removeLogListener(listener); +// } +// +// /** +// * Returns a URL which is the resolved equivalent of the +// * supplied URL. This method is expected to be used with the +// * plug-in-relative URLs returned by IPluginDescriptor, Bundle.getEntry() +// * and Platform.find(). +// * <p> +// * If the specified URL is not a plug-in-relative URL, it is returned +// * as is. If the specified URL is a plug-in-relative URL, this method +// * attempts to reduce the given URL to one which is native to the Java +// * class library (eg. file, http, etc). +// * </p><p> +// * Note however that users of this API should not assume too much about the +// * results of this method. While it may consistently return a file: URL in certain +// * installation configurations, others may result in jar: or http: URLs. +// * </p> +// * @param url original plug-in-relative URL. +// * @return the resolved URL +// * @exception IOException if unable to resolve URL +// * @see #asLocalURL(URL) +// * @see #find(Bundle, IPath) +// * @see Bundle#getEntry(String) +// * @deprecated use {@link FileLocator#resolve(URL)} instead +// */ +// public static URL resolve(URL url) throws IOException { +// return FileLocator.resolve(url); +// } +// +// /** +// * Runs the given runnable in a protected mode. Exceptions +// * thrown in the runnable are logged and passed to the runnable's +// * exception handler. Such exceptions are not rethrown by this method. +// * +// * @param runnable the runnable to run +// * @deprecated clients should use <code>SafeRunner#run</code> instead +// */ +// public static void run(ISafeRunnable runnable) { +// SafeRunner.run(runnable); +// } +// +// /** +// * Returns the platform job manager. +// * +// * @return the platform's job manager +// * @since 3.0 +// * @deprecated The method {@link Job#getJobManager()} should be used instead. +// */ +// public static IJobManager getJobManager() { +// return Job.getJobManager(); +// } +// +// /** +// * Returns the extension registry for this platform. +// * +// * @return the extension registry +// * @see IExtensionRegistry +// * @since 3.0 +// */ +// public static IExtensionRegistry getExtensionRegistry() { +// return InternalPlatform.getDefault().getRegistry(); +// } +// +// /** +// * Returns a URL for the given path in the given bundle. Returns <code>null</code> if the URL +// * could not be computed or created. +// * +// * @param bundle the bundle in which to search +// * @param path path relative to plug-in installation location +// * @return a URL for the given path or <code>null</code>. The actual form +// * of the returned URL is not specified. +// * @see #find(Bundle, IPath, Map) +// * @see #resolve(URL) +// * @see #asLocalURL(URL) +// * @since 3.0 +// * @deprecated use {@link FileLocator#find(Bundle, IPath, Map)} +// */ +// public static URL find(Bundle bundle, IPath path) { +// return FileLocator.find(bundle, path, null); +// } +// +// /** +// * Returns a URL for the given path in the given bundle. Returns <code>null</code> if the URL +// * could not be computed or created. +// * <p> +// * find looks for this path in given bundle and any attached fragments. +// * <code>null</code> is returned if no such entry is found. Note that +// * there is no specific order to the fragments. +// * </p><p> +// * The following arguments may also be used +// * <pre> +// * $nl$ - for language specific information +// * $os$ - for operating system specific information +// * $ws$ - for windowing system specific information +// * </pre> +// * </p><p> +// * A path of $nl$/about.properties in an environment with a default +// * locale of en_CA will return a URL corresponding to the first place +// * about.properties is found according to the following order: +// * <pre> +// * plugin root/nl/en/CA/about.properties +// * fragment1 root/nl/en/CA/about.properties +// * fragment2 root/nl/en/CA/about.properties +// * ... +// * plugin root/nl/en/about.properties +// * fragment1 root/nl/en/about.properties +// * fragment2 root/nl/en/about.properties +// * ... +// * plugin root/about.properties +// * fragment1 root/about.properties +// * fragment2 root/about.properties +// * ... +// * </pre> +// * </p><p> +// * The current environment variable values can be overridden using +// * the override map argument. +// * </p> +// * +// * @param bundle the bundle in which to search +// * @param path file path relative to plug-in installation location +// * @param override map of override substitution arguments to be used for +// * any $arg$ path elements. The map keys correspond to the substitution +// * arguments (eg. "$nl$" or "$os$"). The resulting +// * values must be of type java.lang.String. If the map is <code>null</code>, +// * or does not contain the required substitution argument, the default +// * is used. +// * @return a URL for the given path or <code>null</code>. The actual form +// * of the returned URL is not specified. +// * @see #resolve(URL) +// * @see #asLocalURL(URL) +// * @since 3.0 +// * @deprecated use {@link FileLocator#find(Bundle, IPath, Map)} instead +// */ +// public static URL find(Bundle bundle, IPath path, Map override) { +// return FileLocator.find(bundle, path, override); +// } +// +// /** +// * Returns the location in the local file system of the +// * plug-in state area for the given bundle. +// * If the plug-in state area did not exist prior to this call, +// * it is created. +// * <p> +// * The plug-in state area is a file directory within the +// * platform's metadata area where a plug-in is free to create files. +// * The content and structure of this area is defined by the plug-in, +// * and the particular plug-in is solely responsible for any files +// * it puts there. It is recommended for plug-in preference settings and +// * other configuration parameters. +// * </p> +// * +// * @param bundle the bundle whose state location if returned +// * @return a local file system path +// * @since 3.0 +// * XXX Investigate the usage of a service factory +// */ +// public static IPath getStateLocation(Bundle bundle) { +// return InternalPlatform.getDefault().getStateLocation(bundle); +// } +// +// /** +// * Returns a number that changes whenever the set of installed plug-ins +// * changes. This can be used for invalidating caches that are based on +// * the set of currently installed plug-ins. (e.g. extensions) +// * <p> +// * Clients are also able to acquire the {@link PlatformAdmin} service +// * and get the timestamp from its state object. +// * </p> +// * @return a number related to the set of installed plug-ins +// * @since 3.1 +// */ +// public static long getStateStamp() { +// return InternalPlatform.getDefault().getStateTimeStamp(); +// } +// +// /** +// * Returns the log for the given bundle. If no such log exists, one is created. +// * +// * @param bundle the bundle whose log is returned +// * @return the log for the given bundle +// * @since 3.0 +// * XXX change this into a LogMgr service that would keep track of the map. See if it can be a service factory. +// * It would contain all the methods that are here. +// * Relate to RuntimeLog if appropriate. +// * The system log listener needs to be optional: turned on or off. What about a system property? :-) +// */ +// public static ILog getLog(Bundle bundle) { +// return InternalPlatform.getDefault().getLog(bundle); +// } +// +// /** +// * Returns the given bundle's resource bundle for the current locale. +// * <p> +// * This resource bundle is typically stored as the plugin.properties file +// * in the plug-in itself, and contains any translatable strings used in the +// * plug-in manifest file (plugin.xml). +// * </p> +// * <p> +// * This mechanism is intended only for +// * externalizing strings found in the plug-in manifest file. Using this +// * method for externalizing strings in your code may result in degraded +// * memory performance. +// * </p> +// * +// * @param bundle the bundle whose resource bundle is being queried +// * @return the resource bundle +// * @exception MissingResourceException if the resource bundle was not found +// * @since 3.0 +// * XXX this is deprecated. use NLS or BundleFinder.find() +// */ +// public static ResourceBundle getResourceBundle(Bundle bundle) throws MissingResourceException { +// return InternalPlatform.getDefault().getResourceBundle(bundle); +// } +// +// /** +// * Returns a resource string corresponding to the given argument value. +// * If the argument value specifies a resource key, the string +// * is looked up in the default resource bundle for the given runtime bundle. If the argument does not +// * specify a valid key, the argument itself is returned as the +// * resource string. The key lookup is performed in the +// * file referenced in the Bundle-Localization header of the bundle manifest. If a resource string +// * corresponding to the key is not found in the resource bundle +// * the key value, or any default text following the key in the +// * argument value is returned as the resource string. +// * A key is identified as a string beginning with the "%" character. +// * Note, that the "%" character is stripped off prior to lookup +// * in the resource bundle. +// * <p> +// * Equivalent to <code>getResourceString(bundle, value, getResourceBundle())</code> +// * </p> +// * +// * @param bundle the bundle whose resource bundle is being queried +// * @param value the value to look for +// * @return the resource string +// * @see #getResourceBundle(Bundle) +// * @since 3.0 +// * XXX this is deprecated. use NLS or BundleFinder.find() +// */ +// public static String getResourceString(Bundle bundle, String value) { +// return InternalPlatform.getDefault().getResourceString(bundle, value); +// } +// +// /** +// * Returns a resource string corresponding to the given argument +// * value and resource bundle in the given runtime bundle. +// * If the argument value specifies a resource key, the string +// * is looked up in the given resource bundle. If the argument does not +// * specify a valid key, the argument itself is returned as the +// * resource string. The key lookup is performed against the +// * specified resource bundle. If a resource string +// * corresponding to the key is not found in the resource bundle +// * the key value, or any default text following the key in the +// * argument value is returned as the resource string. +// * A key is identified as a string beginning with the "%" character. +// * Note that the "%" character is stripped off prior to lookup +// * in the resource bundle. +// * <p> +// * For example, assume resource bundle plugin.properties contains +// * name = Project Name +// * <pre> +// * getResourceString("Hello World") returns "Hello World"</li> +// * getResourceString("%name") returns "Project Name"</li> +// * getResourceString("%name Hello World") returns "Project Name"</li> +// * getResourceString("%abcd Hello World") returns "Hello World"</li> +// * getResourceString("%abcd") returns "%abcd"</li> +// * getResourceString("%%name") returns "%name"</li> +// * </pre> +// * </p> +// * +// * @param bundle the bundle whose resource bundle is being queried +// * @param value the value +// * @param resourceBundle the resource bundle to query +// * @return the resource string +// * @see #getResourceBundle(Bundle) +// * @since 3.0 +// * XXX this is deprecated. use NLS or BundleFinder.find() +// */ +// public static String getResourceString(Bundle bundle, String value, ResourceBundle resourceBundle) { +// return InternalPlatform.getDefault().getResourceString(bundle, value, resourceBundle); +// } +// +// /** +// * Returns the string name of the current system architecture. +// * The value is a user-defined string if the architecture is +// * specified on the command line, otherwise it is the value +// * returned by <code>java.lang.System.getProperty("os.arch")</code>. +// * <p> +// * Clients are also able to acquire the {@link EnvironmentInfo} service and query it for +// * the operating-system architecture. +// * </p> +// * @return the string name of the current system architecture +// * @since 3.0 +// */ +// public static String getOSArch() { +// return InternalPlatform.getDefault().getOSArch(); +// } +// +// /** +// * Returns the string name of the current locale for use in finding files +// * whose path starts with <code>$nl$</code>. +// * <p> +// * Clients are also able to acquire the {@link EnvironmentInfo} service and query it for +// * the NL. +// * </p> +// * @return the string name of the current locale +// * @since 3.0 +// */ +// public static String getNL() { +// return InternalPlatform.getDefault().getNL(); +// } +// +// /** +// * Returns the string name of the current operating system for use in finding +// * files whose path starts with <code>$os$</code>. <code>OS_UNKNOWN</code> is +// * returned if the operating system cannot be determined. +// * The value may indicate one of the operating systems known to the platform +// * (as specified in <code>knownOSValues</code>) or a user-defined string if +// * the operating system name is specified on the command line. +// * <p> +// * Clients are also able to acquire the {@link EnvironmentInfo} service and query it for +// * the operating-system. +// * </p> +// * @return the string name of the current operating system +// * @since 3.0 +// */ +// public static String getOS() { +// return InternalPlatform.getDefault().getOS(); +// } +// +// /** +// * Returns the string name of the current window system for use in finding files +// * whose path starts with <code>$ws$</code>. <code>null</code> is returned +// * if the window system cannot be determined. +// * <p> +// * Clients are also able to acquire the {@link EnvironmentInfo} service and query it for +// * the windowing system. +// * </p> +// * @return the string name of the current window system or <code>null</code> +// * @since 3.0 +// */ +// public static String getWS() { +// return InternalPlatform.getDefault().getWS(); +// } +// +// /** +// * Returns the arguments not consumed by the framework implementation itself. Which +// * arguments are consumed is implementation specific. These arguments are available +// * for use by the application. +// * +// * @return the array of command line arguments not consumed by the framework. +// * @since 3.0 +// * XXX Use the Environment info service. Need to see how to set the value of the app args. +// */ +// public static String[] getApplicationArgs() { +// return InternalPlatform.getDefault().getApplicationArgs(); +// } +// +// /** +// * Returns the platform administrator for this running Eclipse. +// * <p> +// * Note: This is an internal method and <em>must not</em> +// * be used by clients which are not part of the Eclipse Platform. +// * This method allows access to classes which are not Eclipse +// * Platform API but are part of the OSGi runtime that the Eclipse +// * Platform is built on. Even as the Eclipse Platform evolves +// * in compatible ways from release to release, the details of +// * the OSGi implementation might not. +// * </p><p> +// * Clients can also acquire the {@link PlatformAdmin} service +// * to retrieve this object. +// * </p> +// * @return the platform admin for this instance of Eclipse +// * @since 3.0 +// */ +// public static PlatformAdmin getPlatformAdmin() { +// return InternalPlatform.getDefault().getPlatformAdmin(); +// } +// +// /** +// * Returns the location of the platform's working directory (also known as the instance data area). +// * <code>null</code> is returned if the platform is running without an instance location. +// * <p> +// * This method is equivalent to acquiring the <code>dwtx.osgi.service.datalocation.Location</code> +// * service with the property "type" equal to {@link Location#INSTANCE_FILTER}. +// *</p> +// * @return the location of the platform's instance data area or <code>null</code> if none +// * @since 3.0 +// * @see Location#INSTANCE_FILTER +// */ +// public static Location getInstanceLocation() { +// return InternalPlatform.getDefault().getInstanceLocation(); +// } +// +// /** +// * Returns the currently registered bundle group providers. +// * <p> +// * Clients are also able to acquire the {@link IBundleGroupProvider} service and query it for +// * the registered bundle group providers. +// * </p> +// * @return the currently registered bundle group providers +// * @since 3.0 +// */ +// public static IBundleGroupProvider[] getBundleGroupProviders() { +// return InternalPlatform.getDefault().getBundleGroupProviders(); +// } +// +// /** +// * Return the interface into the preference mechanism. The returned +// * object can be used for such operations as searching for preference +// * values across multiple scopes and preference import/export. +// * <p> +// * Clients are also able to acquire the {@link IPreferencesService} service via +// * OSGi mechanisms and use it for preference functions. +// * </p> +// * @return an object to interface into the preference mechanism +// * @since 3.0 +// */ +// public static IPreferencesService getPreferencesService() { +// return InternalPlatform.getDefault().getPreferencesService(); +// } +// +// /** +// * Returns the product which was selected when running this Eclipse instance +// * or <code>null</code> if none +// * @return the current product or <code>null</code> if none +// * @since 3.0 +// * XXX move this into the app model. +// */ +// public static IProduct getProduct() { +// return InternalPlatform.getDefault().getProduct(); +// } +// +// /** +// * Registers the given bundle group provider with the platform. +// * <p> +// * Clients are also able to use the {@link IBundleGroupProvider} service to +// * register themselves as a bundle group provider. +// * </p> +// * @param provider a provider to register +// * @since 3.0 +// */ +// public static void registerBundleGroupProvider(IBundleGroupProvider provider) { +// InternalPlatform.getDefault().registerBundleGroupProvider(provider); +// } +// +// /** +// * De-registers the given bundle group provider with the platform. +// * <p> +// * Clients are also able to use the {@link IBundleGroupProvider} service mechanism +// * for unregistering themselves. +// * </p> +// * @param provider a provider to de-register +// * @since 3.0 +// * @see #registerBundleGroupProvider(IBundleGroupProvider) +// */ +// public static void unregisterBundleGroupProvider(IBundleGroupProvider provider) { +// InternalPlatform.getDefault().unregisterBundleGroupProvider(provider); +// } +// +// /** +// * Returns the location of the configuration information +// * used to run this instance of Eclipse. The configuration area typically +// * contains the list of plug-ins available for use, various settings +// * (those shared across different instances of the same configuration) +// * and any other such data needed by plug-ins. +// * <code>null</code> is returned if the platform is running without a configuration location. +// * <p> +// * This method is equivalent to acquiring the <code>dwtx.osgi.service.datalocation.Location</code> +// * service with the property "type" equal to {@link Location#CONFIGURATION_FILTER}. +// *</p> +// * @return the location of the platform's configuration data area or <code>null</code> if none +// * @since 3.0 +// * @see Location#CONFIGURATION_FILTER +// */ +// public static Location getConfigurationLocation() { +// return InternalPlatform.getDefault().getConfigurationLocation(); +// } +// +// /** +// * Returns the location of the platform's user data area. The user data area is a location on the system +// * which is specific to the system's current user. By default it is located relative to the +// * location given by the System property "user.home". +// * <code>null</code> is returned if the platform is running without an user location. +// * <p> +// * This method is equivalent to acquiring the <code>dwtx.osgi.service.datalocation.Location</code> +// * service with the property "type" equal to {@link Location#USER_FILTER}. +// *</p> +// * @return the location of the platform's user data area or <code>null</code> if none +// * @since 3.0 +// * @see Location#USER_FILTER +// */ +// public static Location getUserLocation() { +// return InternalPlatform.getDefault().getUserLocation(); +// } +// +// /** +// * Returns the location of the base installation for the running platform +// * <code>null</code> is returned if the platform is running without a configuration location. +// * <p> +// * This method is equivalent to acquiring the <code>dwtx.osgi.service.datalocation.Location</code> +// * service with the property "type" equal to {@link Location#INSTALL_FILTER}. +// *</p> +// * @return the location of the platform's installation area or <code>null</code> if none +// * @since 3.0 +// * @see Location#INSTALL_FILTER +// */ +// public static Location getInstallLocation() { +// return InternalPlatform.getDefault().getInstallLocation(); +// } +// +// /** +// * Checks if the specified bundle is a fragment bundle. +// * <p> +// * Clients are also able to acquire the {@link PackageAdmin} service +// * to query if the given bundle is a fragment by asking for the bundle type +// * and checking against constants on the service interface. +// * </p> +// * @param bundle the bundle to query +// * @return true if the specified bundle is a fragment bundle; otherwise false is returned. +// * @since 3.0 +// */ +// public static bool isFragment(Bundle bundle) { +// return InternalPlatform.getDefault().isFragment(bundle); +// } +// +// /** +// * Returns an array of attached fragment bundles for the specified bundle. If the +// * specified bundle is a fragment then <tt>null</tt> is returned. If no fragments are +// * attached to the specified bundle then <tt>null</tt> is returned. +// * <p> +// * Clients are also able to acquire the {@link PackageAdmin} service and query +// * it for the fragments of the given bundle. +// * </p> +// * @param bundle the bundle to get the attached fragment bundles for. +// * @return an array of fragment bundles or <tt>null</tt> if the bundle does not +// * have any attached fragment bundles. +// * @since 3.0 +// */ +// public static Bundle[] getFragments(Bundle bundle) { +// return InternalPlatform.getDefault().getFragments(bundle); +// } +// +// /** +// * Returns the resolved bundle with the specified symbolic name that has the +// * highest version. If no resolved bundles are installed that have the +// * specified symbolic name then null is returned. +// * <p> +// * Clients are also able to acquire the {@link PackageAdmin} service and query +// * it for the bundle with the specified symbolic name. Clients can ask the +// * service for all bundles with that particular name and then determine the +// * one with the highest version. Note that clients may want to filter +// * the results based on the state of the bundles. +// * </p> +// * @param symbolicName the symbolic name of the bundle to be returned. +// * @return the bundle that has the specified symbolic name with the +// * highest version, or <tt>null</tt> if no bundle is found. +// * @since 3.0 +// */ +// public static Bundle getBundle(String symbolicName) { +// return InternalPlatform.getDefault().getBundle(symbolicName); +// } +// +// /** +// * Returns all bundles with the specified symbolic name. If no resolved bundles +// * with the specified symbolic name can be found, <tt>null</tt> is returned. +// * If the version argument is not null then only the Bundles that have +// * the specified symbolic name and a version greater than or equal to the +// * specified version are returned. The returned bundles are ordered in +// * descending bundle version order. +// * <p> +// * Clients are also able to acquire the {@link PackageAdmin} service and query +// * it for all bundle versions with the given symbolic name, after turning the +// * specific version into a version range. Note that clients may want to filter +// * the results based on the state of the bundles. +// * </p> +// * @param symbolicName the symbolic name of the bundles that are to be returned. +// * @param version the version that the return bundle versions must match, +// * or <tt>null</tt> if no version matching is to be done. +// * @return the array of Bundles with the specified name that match the +// * specified version and match rule, or <tt>null</tt> if no bundles are found. +// */ +// public static Bundle[] getBundles(String symbolicName, String version) { +// return InternalPlatform.getDefault().getBundles(symbolicName, version); +// } +// +// /** +// * Returns an array of host bundles that the specified fragment bundle is +// * attached to or <tt>null</tt> if the specified bundle is not attached to a host. +// * If the bundle is not a fragment bundle then <tt>null</tt> is returned. +// * <p> +// * Clients are also able to acquire the {@link PackageAdmin} service and query +// * it for the hosts for the given bundle. +// * </p> +// * @param bundle the bundle to get the host bundles for. +// * @return an array of host bundles or null if the bundle does not have any +// * host bundles. +// * @since 3.0 +// */ +// public static Bundle[] getHosts(Bundle bundle) { +// return InternalPlatform.getDefault().getHosts(bundle); +// } +// +// /** +// * Returns whether the platform is running. +// * +// * @return <code>true</code> if the platform is running, +// * and <code>false</code> otherwise +// *@since 3.0 +// *XXX do what you want to do. track osgi, track runtime, or whatever. +// */ +// public static bool isRunning() { +// return InternalPlatform.getDefault().isRunning(); +// } +// +// /** +// * Returns a list of known system architectures. +// * <p> +// * Note that this list is not authoritative; there may be legal values +// * not included in this list. Indeed, the value returned by +// * <code>getOSArch</code> may not be in this list. Also, this list may +// * change over time as Eclipse comes to run on more operating environments. +// * </p> +// * +// * @return the list of system architectures known to the system +// * @see #getOSArch() +// * @since 3.0 +// * XXX This is useless +// */ +// public static String[] knownOSArchValues() { +// return InternalPlatform.getDefault().knownOSArchValues(); +// } +// +// /** +// * Returns a list of known operating system names. +// * <p> +// * Note that this list is not authoritative; there may be legal values +// * not included in this list. Indeed, the value returned by +// * <code>getOS</code> may not be in this list. Also, this list may +// * change over time as Eclipse comes to run on more operating environments. +// * </p> +// * +// * @return the list of operating systems known to the system +// * @see #getOS() +// * @since 3.0 +// * XXX This is useless +// */ +// public static String[] knownOSValues() { +// return InternalPlatform.getDefault().knownOSValues(); +// } +// +// /** +// * Returns a map of known platform line separators. The keys are +// * translated names of platforms and the values are their associated +// * line separator strings. +// * +// * @return a map of platform to their line separator string +// * @since 3.1 +// */ +// public static Map knownPlatformLineSeparators() { +// Map result = new HashMap(); +// result.put(LINE_SEPARATOR_KEY_MAC_OS_9, LINE_SEPARATOR_VALUE_CR); +// result.put(LINE_SEPARATOR_KEY_UNIX, LINE_SEPARATOR_VALUE_LF); +// result.put(LINE_SEPARATOR_KEY_WINDOWS, LINE_SEPARATOR_VALUE_CRLF); +// return result; +// } +// +// /** +// * Returns a list of known windowing system names. +// * <p> +// * Note that this list is not authoritative; there may be legal values +// * not included in this list. Indeed, the value returned by +// * <code>getWS</code> may not be in this list. Also, this list may +// * change over time as Eclipse comes to run on more operating environments. +// * </p> +// * +// * @return the list of window systems known to the system +// * @see #getWS() +// * @since 3.0 +// * XXX This is useless +// */ +// public static String[] knownWSValues() { +// return InternalPlatform.getDefault().knownWSValues(); +// } +// +// /** +// * Returns <code>true</code> if the platform is currently running in +// * debug mode. The platform is typically put in debug mode using the +// * "-debug" command line argument. +// * <p> +// * Clients are also able to acquire the {@link EnvironmentInfo} service and query it +// * to see if they are in debug mode. +// * </p> +// * @return whether or not the platform is running in debug mode +// * @since 3.0 +// */ +// public static bool inDebugMode() { +// return PlatformActivator.getContext().getProperty("osgi.debug") !is null; //$NON-NLS-1$ +// } +// +// /** +// * Returns <code>true</code> if the platform is currently running in +// * development mode. That is, if special procedures are to be +// * taken when defining plug-in class paths. The platform is typically put in +// * development mode using the "-dev" command line argument. +// * <p> +// * Clients are also able to acquire the {@link EnvironmentInfo} service and query it +// * to see if they are in development mode. +// * </p> +// * @return whether or not the platform is running in development mode +// * @since 3.0 +// */ +// public static bool inDevelopmentMode() { +// return PlatformActivator.getContext().getProperty("osgi.dev") !is null; //$NON-NLS-1$ +// } +}