| /******************************************************************************* |
| * Copyright (c) 2000, 2003 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Common Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/cpl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.core.runtime.model; |
| |
| import org.eclipse.core.runtime.PluginVersionIdentifier; |
| |
| /** |
| * An object which represents the user-defined contents of a plug-in model |
| * (either a descriptor or a fragment) in a plug-in manifest. |
| * <p> |
| * This class may not be instantiated, but may be further subclassed. |
| * </p> |
| * TODO @deprecated In Eclipse 3.0 the runtime was refactored and all |
| * non-essential elements removed. This class provides facilities primarily intended |
| * for tooling. As such it has been removed and no directly substitutable API provided. |
| */ |
| public abstract class PluginModel extends PluginModelObject { |
| |
| /** |
| * Manifest schema version. The version number is canonicalized. |
| * May be <code>null</code>. |
| * |
| * @since 3.0 |
| */ |
| private String schemaVersion = null; |
| |
| // DTD properties (included in plug-in manifest) |
| private String id = null; |
| private String providerName = null; |
| private String version = null; |
| private LibraryModel[] runtime = null; |
| private ExtensionPointModel[] extensionPoints = null; |
| private ExtensionModel[] extensions = null; |
| private PluginPrerequisiteModel[] requires = null; |
| |
| // transient properties (not included in plug-in manifest) |
| private PluginRegistryModel registry = null; |
| private String location = null; |
| |
| /** |
| * Creates a new plug-in descriptor model in which all fields |
| * are <code>null</code>. |
| */ |
| public PluginModel() { |
| super(); |
| } |
| |
| /** |
| * Returns the extension points in this plug-in descriptor. |
| * |
| * @return the extension points in this plug-in descriptor or <code>null</code> |
| */ |
| public ExtensionPointModel[] getDeclaredExtensionPoints() { |
| return extensionPoints; |
| } |
| |
| /** |
| * Returns the extensions in this plug-in descriptor. |
| * |
| * @return the extensions in this plug-in descriptor or <code>null</code> |
| */ |
| public ExtensionModel[] getDeclaredExtensions() { |
| return extensions; |
| } |
| |
| /** |
| * Returns the unique identifier of this plug-in model |
| * or <code>null</code>. |
| * This identifier is a non-empty string and is unique |
| * within the plug-in registry. |
| * |
| * @return the unique identifier of this plugin model |
| * (e.g. <code>"com.example"</code>) or <code>null</code>. |
| */ |
| public String getId() { |
| return id; |
| } |
| |
| /** |
| * Returns the location of the plug-in corresponding to this plug-in |
| * descriptor. The location is in the form of a URL. |
| * |
| * @return the location of this plug-in descriptor or <code>null</code>. |
| */ |
| public String getLocation() { |
| return location; |
| } |
| |
| /** |
| * Returns the unique identifier of the plug-in related to this model |
| * or <code>null</code>. |
| * This identifier is a non-empty string and is unique |
| * within the plug-in registry. |
| * |
| * @return the unique identifier of the plug-in related to this model |
| * (e.g. <code>"com.example"</code>) or <code>null</code>. |
| */ |
| public abstract String getPluginId(); |
| |
| /** |
| * Returns the name of the provider who authored this plug-in. |
| * |
| * @return name of the provider who authored this plug-in or <code>null</code> |
| */ |
| public String getProviderName() { |
| return providerName; |
| } |
| |
| /** |
| * Returns the plug-in registry of which this plug-in descriptor is a member. |
| * |
| * @return the registry in which this descriptor has been installed or |
| * <code>null</code> if none. |
| */ |
| public PluginRegistryModel getRegistry() { |
| return registry; |
| } |
| |
| /** |
| * Returns the prerequisites of this plug-in. |
| * |
| * @return the prerequisites of this plug-in or <code>null</code> |
| */ |
| public PluginPrerequisiteModel[] getRequires() { |
| return requires; |
| } |
| |
| /** |
| * Returns the libraries configured for this plug-in. |
| * |
| * @return the libraries configured for this plug-in or <code>null</code> |
| */ |
| public LibraryModel[] getRuntime() { |
| return runtime; |
| } |
| |
| /** |
| * Returns the version name of this plug-in. |
| * |
| * @return the version name of this plug-in or <code>null</code> |
| */ |
| public String getVersion() { |
| return version; |
| } |
| |
| /** |
| * Sets this model object and all of its descendents to be read-only. |
| * Subclasses may extend this implementation. |
| * |
| * @see #isReadOnly() |
| */ |
| public void markReadOnly() { |
| super.markReadOnly(); |
| if (runtime != null) |
| for (int i = 0; i < runtime.length; i++) |
| runtime[i].markReadOnly(); |
| if (extensionPoints != null) |
| for (int i = 0; i < extensionPoints.length; i++) |
| extensionPoints[i].markReadOnly(); |
| if (extensions != null) |
| for (int i = 0; i < extensions.length; i++) |
| extensions[i].markReadOnly(); |
| if (requires != null) |
| for (int i = 0; i < requires.length; i++) |
| requires[i].markReadOnly(); |
| } |
| |
| /** |
| * Sets the extension points in this plug-in descriptor. |
| * This object must not be read-only. |
| * |
| * @param value the extension points in this plug-in descriptor. |
| * May be <code>null</code>. |
| */ |
| public void setDeclaredExtensionPoints(ExtensionPointModel[] value) { |
| assertIsWriteable(); |
| extensionPoints = value; |
| } |
| |
| /** |
| * Sets the extensions in this plug-in descriptor. |
| * This object must not be read-only. |
| * |
| * @param value the extensions in this plug-in descriptor. |
| * May be <code>null</code>. |
| */ |
| public void setDeclaredExtensions(ExtensionModel[] value) { |
| assertIsWriteable(); |
| extensions = value; |
| } |
| |
| /** |
| * Sets the unique identifier of this plug-in model. |
| * The identifier is a non-empty string and is unique |
| * within the plug-in registry. |
| * This object must not be read-only. |
| * |
| * @param value the unique identifier of the plug-in model (e.g. <code>"com.example"</code>). |
| * May be <code>null</code>. |
| */ |
| public void setId(String value) { |
| assertIsWriteable(); |
| id = value; |
| } |
| |
| /** |
| * Optimization to replace a non-localized key with its localized value. Avoids having |
| * to access resource bundles for further lookups. |
| * |
| * @param value the localized provider name for this model object |
| */ |
| public void setLocalizedProviderName(String value) { |
| providerName = value; |
| } |
| |
| /** |
| * Sets the location of the plug-in manifest file (e.g., <code>plugin.xml</code>) |
| * which corresponds to this plug-in descriptor. The location is in the |
| * form of a URL. |
| * This object must not be read-only. |
| * |
| * @param value the location of this plug-in descriptor. May be <code>null</code>. |
| */ |
| public void setLocation(String value) { |
| assertIsWriteable(); |
| location = value; |
| } |
| |
| /** |
| * Sets the name of the provider who authored this plug-in. |
| * This object must not be read-only. |
| * |
| * @param value name of the provider who authored this plug-in. |
| * May be <code>null</code>. |
| */ |
| public void setProviderName(String value) { |
| assertIsWriteable(); |
| providerName = value; |
| } |
| |
| /** |
| * Sets the registry with which this plug-in descriptor is associated. |
| * This object must not be read-only. |
| * |
| * @param value the registry with which this plug-in is associated. |
| * May be <code>null</code>. |
| */ |
| public void setRegistry(PluginRegistryModel value) { |
| assertIsWriteable(); |
| registry = value; |
| } |
| |
| /** |
| * Sets the prerequisites of this plug-in. |
| * This object must not be read-only. |
| * |
| * @param value the prerequisites of this plug-in. May be <code>null</code>. |
| */ |
| public void setRequires(PluginPrerequisiteModel[] value) { |
| assertIsWriteable(); |
| requires = value; |
| } |
| |
| /** |
| * Sets the libraries configured for this plug-in. |
| * This object must not be read-only. |
| * |
| * @param value the libraries configured for this plug-in. May be <code>null</code>. |
| */ |
| public void setRuntime(LibraryModel[] value) { |
| assertIsWriteable(); |
| runtime = value; |
| } |
| |
| /** |
| * Sets the version name of this plug-in. The version number |
| * is canonicalized. |
| * This object must not be read-only. |
| * |
| * @param value the version name of this plug-in. |
| * May be <code>null</code>. |
| */ |
| public void setVersion(String value) { |
| assertIsWriteable(); |
| version = new PluginVersionIdentifier(value).toString(); |
| } |
| |
| /** |
| * Returns the manifest schema version of this plug-in. The version number is |
| * canonicalized. |
| * <p> |
| * The manifest schema version indicates which shape of plug-in manifest this is. |
| * This was introduced in 3.0; plug-ins created prior to then did not explicitly |
| * declare a manifest schema version. |
| * </p> |
| * |
| * @return the manifest schema version of this plug-in. |
| * May be <code>null</code>. |
| * @since 3.0 |
| */ |
| public String getSchemaVersion() { |
| return schemaVersion; |
| } |
| |
| /** |
| * Sets the manifest schema version of this plug-in. The version number is |
| * canonicalized. This object must not be read-only. |
| * <p> |
| * The manifest schema version indicates which shape of plug-in manifest this is. |
| * This was introduced in 3.0; plug-ins created prior to then did not explicitly |
| * declare a manifest schema version. |
| * </p> |
| * |
| * @param value the manifest schema version of this plug-in. |
| * May be <code>null</code>. |
| * @since 3.0 |
| */ |
| public void setSchemaVersion(String value) { |
| assertIsWriteable(); |
| if (value == null) |
| schemaVersion = null; |
| else |
| schemaVersion = new PluginVersionIdentifier(value).toString(); |
| } |
| |
| } |