Interface ServiceManager
- All Known Implementing Classes:
DefaultServiceManager,WrapperServiceManager
public interface ServiceManager
A
ServiceManager selects Objects based on a
role. The contract is that all the Objects implement the
differing roles and there is one Object per role. If you
need to select on of many Objects that implement the same
role, then you need to use a ServiceSelector. Roles are
usually the full interface name.
A role is better understood by the analogy of a play. There are many
different roles in a script. Any actor or actress can play any given part
and you get the same results (phrases said, movements made, etc.). The exact
nuances of the performance is different.
Below is a list of things that might be considered the different roles:
- InputAdapter and OutputAdapter
- Store and Spool
ServiceManager does not specify the methodology of
getting the Object, merely the interface used to get it.
Therefore the ServiceManager can be implemented with a
factory pattern, an object pool, or a simple Hashtable.- Version:
- CVS $Revision: 1.17 $ $Date: 2004/02/11 14:34:25 $
- Author:
- Avalon Development Team
- See Also:
-
Method Summary
-
Method Details
-
lookup
Get theObjectassociated with the given key. For instance, If theServiceManagerhad aLoggerComponentstored and referenced by key, the following could be used:try { LoggerComponent log; myComponent = (LoggerComponent) manager.lookup( LoggerComponent.ROLE ); } catch (...) { ... }- Parameters:
key- The lookup key of theObjectto retrieve.- Returns:
- an
Objectvalue - Throws:
ServiceException- if an error occurs
-
hasService
Check to see if aObjectexists for a key.- Parameters:
key- a string identifying the key to check.- Returns:
- True if the object exists, False if it does not.
-
release
Return theObjectwhen you are finished with it. This allows theServiceManagerto handle the End-Of-Life Lifecycle events associated with theObject. Please note, that no Exception should be thrown at this point. This is to allow easy use of the ServiceManager system without having to trap Exceptions on a release.- Parameters:
object- TheObjectwe are releasing, may also be anullreference
-