Interface IPluginBase

All Superinterfaces:
IAdaptable, IExtensions, IIdentifiable, IPluginObject, IWritable
All Known Subinterfaces:
IFragment, IPlugin

public interface IPluginBase extends IExtensions, IIdentifiable
A model object that represents the content of a plug-in or fragment manifest. This object contains data that is common for both plug-ins and fragments.
Restriction:
This interface is not intended to be implemented by clients.
Restriction:
This interface is not intended to be extended by clients.
  • Field Details

    • P_PROVIDER

      static final String P_PROVIDER
      A property that will be used to notify that the provider name has changed.
      See Also:
    • P_VERSION

      static final String P_VERSION
      A property that will be used to notify that a version has changed.
      See Also:
    • P_LIBRARY_ORDER

      static final String P_LIBRARY_ORDER
      A property that will be used to notify that library order in a plug-in has changed.
      See Also:
    • P_IMPORT_ORDER

      static final String P_IMPORT_ORDER
      A property that will be used to notify that import order in a plug-in has changed.
      See Also:
    • P_SCHEMA_VERSION

      static final String P_SCHEMA_VERSION
      A property that will be used to notify that 3.0 release compatibility flag has been changed.
      See Also:
  • Method Details

    • add

      void add(IPluginLibrary library) throws CoreException
      Adds a new library to this plugin. This method will throw a CoreException if model is not editable.
      Parameters:
      library - the new library
      Throws:
      CoreException - if the model is not editable
    • add

      void add(IPluginImport pluginImport) throws CoreException
      Adds a new plug-in import to this plugin. This method will throw a CoreException if model is not editable.
      Parameters:
      pluginImport - the new import object
      Throws:
      CoreException - if the model is not editable
    • remove

      void remove(IPluginImport pluginImport) throws CoreException
      Removes an import from the plugin. This method will throw a CoreException if the model is not editable.
      Parameters:
      pluginImport - the import object
      Throws:
      CoreException - if the model is not editable
    • getLibraries

      IPluginLibrary[] getLibraries()
      Returns libraries referenced in this plug-in.
      Returns:
      an array of libraries
    • getImports

      IPluginImport[] getImports()
      Returns imports defined in this plug-in.
      Returns:
      an array of import objects
    • getProviderName

      String getProviderName()
      Returns a name of the plug-in provider.
      Returns:
      plug-in provider name
    • getVersion

      String getVersion()
      Returns this plug-in's version
      Returns:
      the version of the plug-in
    • remove

      void remove(IPluginLibrary library) throws CoreException
      Removes a library from the plugin. This method will throw a CoreException if the model is not editable.
      Parameters:
      library - the library object
      Throws:
      CoreException - if the model is not editable
    • setProviderName

      void setProviderName(String providerName) throws CoreException
      Sets the name of the plug-in provider. This method will throw a CoreException if the model is not editable.
      Parameters:
      providerName - the new provider name
      Throws:
      CoreException - if the model is not editable
    • setVersion

      void setVersion(String version) throws CoreException
      Sets the version of the plug-in. This method will throw a CoreException if the model is not editable.
      Parameters:
      version - the new plug-in version
      Throws:
      CoreException - if the model is not editable
    • swap

      void swap(IPluginLibrary l1, IPluginLibrary l2) throws CoreException
      Swaps the positions of the provided libraries in the list of libraries. Libraries are looked up by the class loader in the order of declaration. If two libraries contain classes with the same name, library order will determine which one is encountered first.
      Parameters:
      l1 - the first library object
      l2 - the second library object
      Throws:
      CoreException - if the model is not editable
    • swap

      void swap(IPluginImport import1, IPluginImport import2) throws CoreException
      Swaps the positions of the plug-ins provided in in the dependency list. This order is the one used used by the classloader when loading classes.
      Parameters:
      import1 - the first import object
      import2 - the second import object
      Throws:
      CoreException - if the model is not editable
    • getSchemaVersion

      String getSchemaVersion()
      Returns version of the manifest grammar
      Returns:
      version of the manifest grammar, or null
    • setSchemaVersion

      void setSchemaVersion(String schemaVersion) throws CoreException
      Sets the R3.0 compatibility flag
      Parameters:
      schemaVersion - version of the manifest grammar
      Throws:
      CoreException - if the model is not editable
    • exportsExternalAnnotations

      default boolean exportsExternalAnnotations()
      Returns whether this plugin exports its external annotations (.eea files) to be considered by clients performing annotation based null analysis. This is read from the manifest header Eclipse-ExportExternalAnnotations.
      Since:
      3.15