org.apache.hivemind.internal
Interface Module

All Superinterfaces:
Locatable
All Known Implementing Classes:
ModuleImpl

public interface Module
extends Locatable

The definition of a HiveMind Module. A Module is a container of service extension points and configuration extension points. It also acts as a "gateway" so that services and configurations in other modules may be accessed.

Why do we expose the Module rather than the RegistryInfrastructure? It's more than just qualifying ids before passing them up to the RI. At some future point, a concept of visibility will be added to HiveMind. This will make many services and configurations private to the module which defines them and the necessary visibility filtering logic will be here.

Author:
Howard Lewis Ship

Method Summary
 java.lang.String expandSymbols(java.lang.String input, Location location)
           
 ClassResolver getClassResolver()
          Returns the resource resolver for this module.
 java.util.List getConfiguration(java.lang.String configurationId)
          Returns the List of elements for the specified configuration point.
 ErrorHandler getErrorHandler()
          Returns the ErrorHandler for this Registry.
 java.util.Locale getLocale()
           
 Messages getMessages()
          Returns an object that can provide and format localized messages for this module.
 java.lang.String getModuleId()
          Returns the unique identifier for this module.
 java.lang.Object getService(java.lang.Class serviceInterface)
          Finds a service that implements the provided interface.
 java.lang.Object getService(java.lang.String serviceId, java.lang.Class serviceInterface)
          Looks up the ServicePoint (throwing an exception if not found) and invokes ServicePoint.getService(Class).
 ServiceModelFactory getServiceModelFactory(java.lang.String name)
           
 ServicePoint getServicePoint(java.lang.String serviceId)
          Returns the identified service extension point.
 Translator getTranslator(java.lang.String translator)
           
 
Methods inherited from interface org.apache.hivemind.Locatable
getLocation
 

Method Detail

getModuleId

public java.lang.String getModuleId()
Returns the unique identifier for this module.


getService

public java.lang.Object getService(java.lang.String serviceId,
                                   java.lang.Class serviceInterface)
Looks up the ServicePoint (throwing an exception if not found) and invokes ServicePoint.getService(Class).

Parameters:
serviceId - an unqualified id for a service within this module, or a fully qualified id for a service in this or any other module
serviceInterface - type the result will be cast to

getService

public java.lang.Object getService(java.lang.Class serviceInterface)
Finds a service that implements the provided interface. Exactly one such service may exist or an exception is thrown.

Parameters:
serviceInterface - used to locate the service

getServicePoint

public ServicePoint getServicePoint(java.lang.String serviceId)
Returns the identified service extension point.

Parameters:
serviceId - an unqualified id for a service within this module, or a fully qualified id for a service in this or any other module
Throws:
ApplicationRuntimeException - if no such service extension point exists

getConfiguration

public java.util.List getConfiguration(java.lang.String configurationId)
Returns the List of elements for the specified configuration point. The returned List is unmodifiable. It may be empty, but won't be null.

It is expressly the caller's job to sort the elements into an appropriate order (a copy will have to be made since the returned List is unmodifiable).

Parameters:
configurationId - an unqualified id for a configuration within this module, or a fully qualified id for a configuration in this or any other module
Throws:
ApplicationRuntimeException - if this module does not contain the specified configuration extension point.

getClassResolver

public ClassResolver getClassResolver()
Returns the resource resolver for this module. The resource resolver is used to locate classes by name (using the correct classloader).


getMessages

public Messages getMessages()
Returns an object that can provide and format localized messages for this module. The messages come from a properties file, hivemodule.properties (localized) stored with the HiveMind deployment descriptor in the META-INF folder.


getTranslator

public Translator getTranslator(java.lang.String translator)
See Also:
RegistryInfrastructure.getTranslator(String)

getServiceModelFactory

public ServiceModelFactory getServiceModelFactory(java.lang.String name)
See Also:
RegistryInfrastructure.getServiceModelFactory(String)

getLocale

public java.util.Locale getLocale()
See Also:
Registry.getLocale()

expandSymbols

public java.lang.String expandSymbols(java.lang.String input,
                                      Location location)
See Also:
RegistryInfrastructure.expandSymbols(String, Location)

getErrorHandler

public ErrorHandler getErrorHandler()
Returns the ErrorHandler for this Registry.