Interface ServiceManager
- All Known Implementing Classes:
DefaultServiceManager
,WrapperServiceManager
public interface ServiceManager
A
ServiceManager
selects Object
s based on a
role. The contract is that all the Object
s implement the
differing roles and there is one Object
per role. If you
need to select on of many Object
s 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 theObject
associated with the given key. For instance, If theServiceManager
had aLoggerComponent
stored 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 theObject
to retrieve.- Returns:
- an
Object
value - Throws:
ServiceException
- if an error occurs
-
hasService
Check to see if aObject
exists 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 theObject
when you are finished with it. This allows theServiceManager
to 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
- TheObject
we are releasing, may also be anull
reference
-