com.tibbo.aggregate.common.plugin

## Class PluginDirector

- java.lang.Object
- - com.tibbo.aggregate.common.plugin.PluginDirector

-     public abstract class PluginDirector
      extends java.lang.Object

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `EXTENSIONS_PLUGIN_ID`
    `static java.lang.String` | `PLUGIN_DIRS_SEPARATOR`
    `static java.lang.String` | `PLUGIN_FILE_EXTENSION`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `PluginDirector(java.lang.String homeDir)`
    `PluginDirector(java.lang.String homeDir, java.lang.String additionalPluginDirs, java.util.Collection<java.lang.String> allowedPlugins)`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `checkIntegrity()`
    `protected java.lang.String` | `convertId(java.lang.String id)`
    `abstract Context` | `createGlobalConfigContext(BasePlugin plugin, Context rootContext, boolean requestReboot, Permissions permissions, VariableDefinition... properties)`
    `org.java.plugin.Plugin` | `createNewPlugin(java.lang.String id)`
    `abstract Context` | `createUserConfigContext(BasePlugin plugin, Context userContext, boolean requestReboot, VariableDefinition... properties)`
    `abstract CallerController` | `getCallerController()`
    `abstract ContextManager` | `getContextManager()`
    `org.java.plugin.Plugin` | `getExistingPlugin(java.lang.String id)`
    `protected ExtensionsPlugin` | `getExtensionsPlugin()`
    `java.lang.ClassLoader` | `getPluginClassLoader(java.lang.String id)`
    `java.util.Map<java.lang.String,java.lang.String>` | `getPluginIdMap()`
    `org.java.plugin.PluginManager` | `getPluginManager()`
    `protected boolean` | `isPluginAllowed(java.lang.String id)`
    `boolean` | `isPluginAvailable(java.lang.String id)`
    `void` | `stop()`
    `protected abstract void` | `updatePlugins()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### PLUGIN_DIRS_SEPARATOR

          public static final java.lang.String PLUGIN_DIRS_SEPARATOR

      See Also:
        Constant Field Values

    - #### PLUGIN_FILE_EXTENSION

          public static final java.lang.String PLUGIN_FILE_EXTENSION

      See Also:
        Constant Field Values

    - #### EXTENSIONS_PLUGIN_ID

          public static final java.lang.String EXTENSIONS_PLUGIN_ID

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### PluginDirector

          public PluginDirector(java.lang.String homeDir,
                                java.lang.String additionalPluginDirs,
                                java.util.Collection<java.lang.String> allowedPlugins)
                         throws AggreGateException

      Throws:
        `AggreGateException`

    - #### PluginDirector

          public PluginDirector(java.lang.String homeDir)
                         throws AggreGateException

      Throws:
        `AggreGateException`

  - ### Method Detail

    - #### updatePlugins

          protected abstract void updatePlugins()

    - #### getContextManager

          public abstract ContextManager getContextManager()

    - #### getCallerController

          public abstract CallerController getCallerController()

    - #### createGlobalConfigContext

          public abstract Context createGlobalConfigContext(BasePlugin plugin,
                                                            Context rootContext,
                                                            boolean requestReboot,
                                                            Permissions permissions,
                                                            VariableDefinition... properties)

    - #### createUserConfigContext

          public abstract Context createUserConfigContext(BasePlugin plugin,
                                                          Context userContext,
                                                          boolean requestReboot,
                                                          VariableDefinition... properties)

    - #### checkIntegrity

          protected void checkIntegrity()
                                 throws AggreGateException

      Throws:
        `AggreGateException`

    - #### stop

          public void stop()
                    throws AggreGateException

      Throws:
        `AggreGateException`

    - #### convertId

          protected java.lang.String convertId(java.lang.String id)

    - #### getExistingPlugin

          public org.java.plugin.Plugin getExistingPlugin(java.lang.String id)

    - #### createNewPlugin

          public org.java.plugin.Plugin createNewPlugin(java.lang.String id)

    - #### isPluginAllowed

          protected boolean isPluginAllowed(java.lang.String id)

    - #### getPluginManager

          public org.java.plugin.PluginManager getPluginManager()

    - #### getPluginClassLoader

          public java.lang.ClassLoader getPluginClassLoader(java.lang.String id)
                                                     throws org.java.plugin.PluginLifecycleException

      Throws:
        `org.java.plugin.PluginLifecycleException`

    - #### isPluginAvailable

          public boolean isPluginAvailable(java.lang.String id)

    - #### getExtensionsPlugin

          protected ExtensionsPlugin getExtensionsPlugin()

    - #### getPluginIdMap

          public java.util.Map<java.lang.String,java.lang.String> getPluginIdMap()