net.sourceforge.pain.plugin
Class PluginManager

java.lang.Object
  extended bynet.sourceforge.pain.plugin.PluginManager

public final class PluginManager
extends java.lang.Object

Manager for plugin loading/reloading/unloading...


Constructor Summary
PluginManager()
           
 
Method Summary
 java.util.List getActivePluginsList()
           
 Plugin getPlugin(java.lang.String pluginName)
           
 void init(java.lang.String pluginsHomePackagePrefix, java.lang.String pluginClassesDir)
          All classes under pluginsHomePackagePrefix assumed as
 boolean isInPluginPackages(java.lang.String className)
           
 java.lang.Class loadClassByPluginClassloader(java.lang.String requesterPluginName, java.lang.String requestedClassName)
          if plugin A uses classes from plugin B this dialog will be called during plugin A class instantiation this method is also used in LogicLoader to provide plugin classes to logic ones todo: logic classes should be reloaded only if they use this plugin
 Plugin loadPlugin(java.lang.String pluginName)
           
 void loadPluginsFromFile(java.io.File configFile)
           
 void unloadPlugin(Plugin p)
          WARN: all net.sourceforge.pain.logic.* classes have direct access to plugins we will unload all this code after plugin is unloaded in this method WARN: all child plugins will be unloaded!
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PluginManager

public PluginManager()
Method Detail

init

public void init(java.lang.String pluginsHomePackagePrefix,
                 java.lang.String pluginClassesDir)
All classes under pluginsHomePackagePrefix assumed as

Parameters:
pluginsHomePackagePrefix - - package name ending with '.' (example: net.sourceforge.pain.tinylib.plugin)

loadPluginsFromFile

public void loadPluginsFromFile(java.io.File configFile)
                         throws java.lang.Exception
Throws:
java.lang.Exception

getPlugin

public Plugin getPlugin(java.lang.String pluginName)
Parameters:
pluginName - - is className without PLUGINS_HOME_PREFIX

loadPlugin

public Plugin loadPlugin(java.lang.String pluginName)
                  throws java.lang.Exception
Parameters:
pluginName - is className without PLUGINS_HOME prefix
Throws:
java.lang.Exception

loadClassByPluginClassloader

public java.lang.Class loadClassByPluginClassloader(java.lang.String requesterPluginName,
                                                    java.lang.String requestedClassName)
                                             throws java.lang.ClassNotFoundException
if plugin A uses classes from plugin B this dialog will be called during plugin A class instantiation this method is also used in LogicLoader to provide plugin classes to logic ones todo: logic classes should be reloaded only if they use this plugin

Throws:
java.lang.ClassNotFoundException

unloadPlugin

public void unloadPlugin(Plugin p)
WARN: all net.sourceforge.pain.logic.* classes have direct access to plugins we will unload all this code after plugin is unloaded in this method WARN: all child plugins will be unloaded!


getActivePluginsList

public java.util.List getActivePluginsList()

isInPluginPackages

public boolean isInPluginPackages(java.lang.String className)