Class PluginConfigurationImporter

java.lang.Object
net.sf.basedb.core.plugin.AbstractPlugin
net.sf.basedb.plugins.PluginConfigurationImporter
All Implemented Interfaces:
AutoDetectingImporter, InteractivePlugin, Plugin, SignalTarget

public class PluginConfigurationImporter
extends AbstractPlugin
implements InteractivePlugin, AutoDetectingImporter, SignalTarget
This plugin imports pluginconfiguration from an XML-file. The XML-file need to have a DOCLET definition in the first 30 lines and the format in the XML-file should use: plugin-configuration-file.dtd in /net/sf/basedb/core/dtd/.
Version:
2.1
Author:
Martin
Last modified
$Date$
  • Field Details

  • Constructor Details

    • PluginConfigurationImporter

      public PluginConfigurationImporter()
  • Method Details

    • getGuiContexts

      public Set<GuiContext> getGuiContexts()
      Description copied from interface: InteractivePlugin
      Get a set containing all items that the plugin handles. Ie. if the plugin imports reporters, return a set containing Item.REPORTER. This information is used by client applications to put the plugin in the proper place in the user interface.
      Specified by:
      getGuiContexts in interface InteractivePlugin
      Returns:
      A Set containing Item:s, or null if the plugin is not concerned about items
    • isInContext

      public String isInContext​(GuiContext context, Object item)
      Description copied from interface: InteractivePlugin
      Check if the plugin can be used on the specified object. The item is either a BasicItem or BasicData object, or null if called from a list context. A client application should only call this method for contexts matching one of the contexts in the set returned by the InteractivePlugin.getGuiContexts() method. For GuiContext.Type.ITEM contexts an item of the correct type should be passed as a parameter.

      The plug-in can response with a null value indicating success, a warning-level message or throw an exception to indicate an error-level message. Client application should normally only show error-level messages to users, unless the user has requested to see warning messages.

      NOTE! Before BASE 2.4 all messages were treated as error-level messages.

      Specified by:
      isInContext in interface InteractivePlugin
      Parameters:
      context - The current context of the client application, it is one of the values found in set returned by InteractivePlugin.getGuiContexts()
      item - The currently active item, it's type should match the GuiContext.getItem() type, or null if the context is a list context
      Returns:
      Null if the plugin can use that item, or a warning-level message explaining why the plugin can't be used
    • getRequestInformation

      public RequestInformation getRequestInformation​(GuiContext context, String command) throws BaseException
      Description copied from interface: InteractivePlugin
      This method will return the RequestInformation for a given command, i.e. the list of parameters and some nice help text.
      Specified by:
      getRequestInformation in interface InteractivePlugin
      Parameters:
      context - The current context of the client application, it is one of the values found in set returned by InteractivePlugin.getGuiContexts()
      command - The command
      Returns:
      The RequestInformation for the command
      Throws:
      BaseException - if there is an error
    • configure

      public void configure​(GuiContext context, Request request, Response response)
      Description copied from interface: InteractivePlugin
      Configure the plugin. Hopefully the client is supplying values for the parameters specified by InteractivePlugin.getRequestInformation(GuiContext, String).
      Specified by:
      configure in interface InteractivePlugin
      Parameters:
      context - The current context of the client application, it is one of the values found in set returned by InteractivePlugin.getGuiContexts()
      request - Request object with the command and parameters
      response - Response object in for the plugin to response through
    • getMainType

      public Plugin.MainType getMainType()
      Description copied from interface: Plugin
      Get the type of the plugin. This method must always return the same value.
      Specified by:
      getMainType in interface Plugin
      Returns:
      One of the defined types
    • supportsConfigurations

      public boolean supportsConfigurations()
      Description copied from class: AbstractPlugin
      Returns TRUE, since that is how the plugins used to work before this method was introduced.
      Specified by:
      supportsConfigurations in interface Plugin
      Overrides:
      supportsConfigurations in class AbstractPlugin
      Returns:
      TRUE or FALSE
    • requiresConfiguration

      public boolean requiresConfiguration()
      Description copied from class: AbstractPlugin
      Returns FALSE, since that is how the plugins used to work before this method was introduced.
      Specified by:
      requiresConfiguration in interface Plugin
      Overrides:
      requiresConfiguration in class AbstractPlugin
      Returns:
      TRUE or FALSE
    • run

      public void run​(Request request, Response response, ProgressReporter progress)
      Description copied from interface: Plugin
      Run the plugin. If a progress reporter object is passed it is recommended that the plugin makes use of it.
      Specified by:
      run in interface Plugin
      Parameters:
      request - Request object with the command and parameters
      response - Response object in for the plugin to response through
      progress - A ProgressReporter where the plugin can report its progess, can be null
    • isImportable

      public boolean isImportable​(InputStream in) throws BaseException
      Description copied from interface: AutoDetectingImporter
      Check if the given InputStream can be imported by this plugin.
      Specified by:
      isImportable in interface AutoDetectingImporter
      Parameters:
      in - The input stream to check
      Returns:
      TRUE if the stream can be imported, FALSE otherwise
      Throws:
      BaseException - If something goes wrong
    • doImport

      public void doImport​(InputStream in, ProgressReporter progress) throws BaseException
      Description copied from interface: AutoDetectingImporter
      Import the data from the given InputStream.
      Specified by:
      doImport in interface AutoDetectingImporter
      Parameters:
      in - The input stream to read from
      progress - Progress reporter used by the caller to keep track of the progress. Null is allowed
      Throws:
      BaseException - If something goes wrong
    • getSignalHandler

      public SignalHandler getSignalHandler()
      Description copied from interface: SignalTarget
      Get the signal handler that is handling signals on behalf of this object. Multiple invokations of this method may receive the same or different objects. Null may be returned if, for some reason, the current object instance doesn't want to receive signals. Returning null is the same as not implementing this interface.
      Specified by:
      getSignalHandler in interface SignalTarget
      Returns:
      A SignalHandler object, or null if the current instance doesn't support signals
    • importPluginConfigurationsFromJar

      public void importPluginConfigurationsFromJar​(String jarPath, String xmlPath, HashMap<Integer,​Boolean> configurations, boolean importAll, boolean setPermissions) throws IOException, BaseException
      Imports plugin configurations direct from an xml file, located in a jar.
      Parameters:
      jarPath - Path to the jar-file
      xmlPath - Where in the jar-file the XML-file is located
      configurations - A hasmap with a boolean value for each configuration in the xml-file. The value should be TRUE if the configuration should be imported, FALSE otherwise.
      importAll - If all configurations in the xml-file should be imported or not.
      setPermissions - If the configurations should be shared to the same users as the plugins they belong to.
      Throws:
      IOException - When something goes wrong accessing a file
      BaseException - When the hashmap with import options has different size compared to number of configurations in XML-file
      Since:
      2.5
    • getConfiguredJobParameters

      private RequestInformation getConfiguredJobParameters()
    • getConfiguredSelectionParameters

      private RequestInformation getConfiguredSelectionParameters()
      Gets request information to set which configuration to import
      Returns:
      request information with parameter to use.
    • getConfigurationInstallOption

      private boolean getConfigurationInstallOption​(int orderNumber)
      Returns if a configuration in a certain place/order in the XML-file should be imported
      Parameters:
      orderNumber - The number of order the configuration has in the XML-file
      Returns:
      TRUE if the configuration should be imported, FALSE otherwise.