org.apache.hivemind.impl
Class RegistryImpl

java.lang.Object
  extended by org.apache.hivemind.impl.RegistryImpl
All Implemented Interfaces:
Registry, SymbolSource

public class RegistryImpl
extends java.lang.Object
implements Registry

Implementation of Registry that delegates to an instance of RegistryInfrastructure.

Since:
1.1

Constructor Summary
RegistryImpl(RegistryInfrastructure infrastructure)
           
 
Method Summary
 void cleanupThread()
          Convienience for invoking ThreadEventNotifier.fireThreadCleanup().
 boolean containsConfiguration(java.lang.String configurationId)
          Returns true if a configuration for the specified id exists.
 boolean containsService(java.lang.Class serviceInterface)
          Returns true if a single service for the specified service interface class exists.
 boolean containsService(java.lang.String serviceId, java.lang.Class serviceInterface)
          Returns true if a service for the specified service id and service interface exists.
 java.lang.String expandSymbols(java.lang.String input, Location location)
          Expands any substitution symbols in the input string, replacing each symbol with the symbols value (if known).
 java.util.List getConfiguration(java.lang.String configurationId)
          Returns a configuration as a List of elements (as defined by the schema for the configuration point, or as Elements if no configuration point does not define a schema.
 java.util.Map getConfigurationAsMap(java.lang.String configurationId)
          Returns the elements of the given configuration point as an unmodifiable Map.
 java.util.Locale getLocale()
          Returns the locale for which the registry was created.
 Messages getModuleMessages(java.lang.String moduleId)
          Returns the Messages object for the specified module.
 java.lang.Object getService(java.lang.Class serviceInterface)
          Convenience method to obtain a service with a single implementation from the registry.
 java.lang.Object getService(java.lang.String serviceId, java.lang.Class serviceInterface)
          Obtains a service from the registry.
 java.util.List getServiceIds(java.lang.Class serviceInterface)
          Returns a list of service ids for service points which implement the desired service interface.
 boolean isConfigurationMappable(java.lang.String configurationId)
          Returns true if the elements contributed to the given configuration point can be retrieved as a Map.
 void setupThread()
          To be invoked at the start of each request in a multi-threaded environment.
 void shutdown()
          Shuts down the registry; this notifies all RegistryShutdownListener services and objects.
 java.lang.String valueForSymbol(java.lang.String name)
          Returns the value for the symbol, if this source can provide one.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RegistryImpl

public RegistryImpl(RegistryInfrastructure infrastructure)
Method Detail

containsConfiguration

public boolean containsConfiguration(java.lang.String configurationId)
Description copied from interface: Registry
Returns true if a configuration for the specified id exists.

Specified by:
containsConfiguration in interface Registry
Returns:
true if a configuration for the specified id exists

containsService

public boolean containsService(java.lang.Class serviceInterface)
Description copied from interface: Registry
Returns true if a single service for the specified service interface class exists.

Specified by:
containsService in interface Registry
Returns:
true if a single service for the specified service interface exists

containsService

public boolean containsService(java.lang.String serviceId,
                               java.lang.Class serviceInterface)
Description copied from interface: Registry
Returns true if a service for the specified service id and service interface exists.

Specified by:
containsService in interface Registry
Returns:
true if a service for the specified service id and service interface exists

getConfiguration

public java.util.List getConfiguration(java.lang.String configurationId)
Description copied from interface: Registry
Returns a configuration as a List of elements (as defined by the schema for the configuration point, or as Elements if no configuration point does not define a schema.

Specified by:
getConfiguration in interface Registry
Parameters:
configurationId - the fully qualified id of the configuration to obtain
Returns:
the configuration as an immutable List

isConfigurationMappable

public boolean isConfigurationMappable(java.lang.String configurationId)
Description copied from interface: Registry
Returns true if the elements contributed to the given configuration point can be retrieved as a Map.

Specified by:
isConfigurationMappable in interface Registry
Parameters:
configurationId - the fully qualified id of the configuration
See Also:
Module.isConfigurationMappable(String)

getConfigurationAsMap

public java.util.Map getConfigurationAsMap(java.lang.String configurationId)
Description copied from interface: Registry
Returns the elements of the given configuration point as an unmodifiable Map. It may be empty, but not null.

Specified by:
getConfigurationAsMap in interface Registry
Parameters:
configurationId - the fully qualified id of the configuration
See Also:
Module.getConfigurationAsMap(String), Registry.isConfigurationMappable(String)

expandSymbols

public java.lang.String expandSymbols(java.lang.String input,
                                      Location location)
Description copied from interface: Registry
Expands any substitution symbols in the input string, replacing each symbol with the symbols value (if known). If a symbol is unknown, then the symbol is passed through unchanged (complete with the ${ and } delimiters) and an error is logged.

Specified by:
expandSymbols in interface Registry
Parameters:
input - input string to be converted, which may (or may not) contain any symbols.
location - the location from which the string was obtained, used if an error is logged.

getService

public java.lang.Object getService(java.lang.String serviceId,
                                   java.lang.Class serviceInterface)
Description copied from interface: Registry
Obtains a service from the registry. Typically, what's returned is a proxy, but that's irrelevant to the caller, which simply will invoke methods of the service interface.

Specified by:
getService in interface Registry
Parameters:
serviceId - the fully qualified id of the service to obtain
serviceInterface - the class to which the service will be cast
Returns:
the service

getService

public java.lang.Object getService(java.lang.Class serviceInterface)
Description copied from interface: Registry
Convenience method to obtain a service with a single implementation from the registry. Exactly one service point must implement the service.

Specified by:
getService in interface Registry
Parameters:
serviceInterface - the class to which the service will be cast.
Returns:
the service implementing the given interface.
See Also:
Registry.getService(String, Class)

getLocale

public java.util.Locale getLocale()
Description copied from interface: Registry
Returns the locale for which the registry was created.

Specified by:
getLocale in interface Registry

shutdown

public void shutdown()
Description copied from interface: Registry
Shuts down the registry; this notifies all RegistryShutdownListener services and objects. Once the registry is shutdown, it is no longer valid to obtain new services or configurations, or even use existing services and configurations.

Specified by:
shutdown in interface Registry

cleanupThread

public void cleanupThread()
Description copied from interface: Registry
Convienience for invoking ThreadEventNotifier.fireThreadCleanup().

Specified by:
cleanupThread in interface Registry

valueForSymbol

public java.lang.String valueForSymbol(java.lang.String name)
Description copied from interface: SymbolSource
Returns the value for the symbol, if this source can provide one. Returns null if the source can not provide a value.

Specified by:
valueForSymbol in interface SymbolSource

setupThread

public void setupThread()
Description copied from interface: Registry
To be invoked at the start of each request in a multi-threaded environment. Ensures that the receiving Registry will be used if any service proxies are de-serialized.

Specified by:
setupThread in interface Registry
Since:
1.1
See Also:
ServiceSerializationHelper, ServiceSerializationSupport

getServiceIds

public java.util.List getServiceIds(java.lang.Class serviceInterface)
Description copied from interface: Registry
Returns a list of service ids for service points which implement the desired service interface.

Specified by:
getServiceIds in interface Registry
Returns:
Returns an empty List if no matching service points exist.
Since:
1.1

getModuleMessages

public Messages getModuleMessages(java.lang.String moduleId)
Description copied from interface: Registry
Returns the Messages object for the specified module.

Specified by:
getModuleMessages in interface Registry
Parameters:
moduleId - the module id
Returns:
the Messages object for the specified module.
Since:
1.1