org.eclipse.wst.server.core.model
Class ModuleFactoryDelegate

java.lang.Object
  extended byorg.eclipse.wst.server.core.model.ModuleFactoryDelegate
Direct Known Subclasses:
ProjectModuleFactoryDelegate

public abstract class ModuleFactoryDelegate
extends java.lang.Object

A module factory delegate provides a mechanism for discovering modules. A module factory delegate is specified by the class attribute of a moduleFactories extension.

When the module factory needs to be given a delegate, the delegate class specified for the module factory is instantiated with a 0-argument constructor.

Module factory delegates may keep state in instance fields, but that state is transient and will not be persisted across workbench sessions.

This interface is intended to be implemented by clients.

Caveat: The server core API is still in an early form, and is likely to change significantly before the initial release.

Since:
1.0
See Also:
IModule, ModuleDelegate

Constructor Summary
ModuleFactoryDelegate()
          Delegates must have a public 0-arg constructor.
 
Method Summary
 IModule createModule(java.lang.String id, java.lang.String name, java.lang.String type, java.lang.String version, IProject project)
          Creates a module instance with the given static information.
abstract  ModuleDelegate getModuleDelegate(IModule module)
          Creates the module delegate for a module with the given information.
abstract  IModule[] getModules()
          Return all modules created by this factory.
 void initialize(org.eclipse.wst.server.core.internal.ModuleFactory newFactory)
          Initializes this module factory delegate with its life-long module factory instance.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ModuleFactoryDelegate

public ModuleFactoryDelegate()
Delegates must have a public 0-arg constructor.

Method Detail

initialize

public final void initialize(org.eclipse.wst.server.core.internal.ModuleFactory newFactory)
Initializes this module factory delegate with its life-long module factory instance.

This method is called by the server core framework. Clients should never call this method.

Parameters:
newFactory - the module factory instance

createModule

public IModule createModule(java.lang.String id,
                            java.lang.String name,
                            java.lang.String type,
                            java.lang.String version,
                            IProject project)
Creates a module instance with the given static information. This method is used by module factory delegates to create module instances.

Parameters:
id - the module id
name - the module name
type - the module type id
version - the module version id
project - the project that the module is contained in
Returns:
a module instance

getModuleDelegate

public abstract ModuleDelegate getModuleDelegate(IModule module)
Creates the module delegate for a module with the given information. This method is called when a client needs to access the module delegate associated with the given module.

Parameters:
module - a module
Returns:
the module delegate

getModules

public abstract IModule[] getModules()
Return all modules created by this factory.

This method is normally called by the web server core framework. Clients (other than the delegate) should never call this method.

A new array is returned on each call, so clients may store or modify the result.

Returns:
a possibly-empty array of modules IModule