|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
A ComponentSelector
selects Component
s based on a
hint. The contract is that all the Component
s implement the
same role.
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 same role:
The ComponentSelector
does not specify the methodology of
getting the Component
, merely the interface used to get it.
Therefore the ComponentSelector
can be implemented with a
factory pattern, an object pool, or a simple Hashtable.
Deprecated:
Use ServiceSelector
instead.
Component
,
Composable
,
ComponentManager
Method Summary | |
boolean |
hasComponent(java.lang.Object hint)
Check to see if a Component exists for a hint. |
void |
release(Component component)
Return the Component when you are finished with it. |
Component |
select(java.lang.Object hint)
Select the Component associated with the given hint. |
Method Detail |
public Component select(java.lang.Object hint) throws ComponentException
Component
associated with the given hint.
For instance, If the ComponentSelector
has a
Generator
stored and referenced by a URL, I would use the
following call:
try { Generator input; input = (Generator)selector.select( new URL("foo://demo/url") ); } catch (...) { ... }
hint
- A hint to retrieve the correct Component
.
ComponentException
- If the given role is not associated
with a Component
, or a
Component
instance cannot
be created.public boolean hasComponent(java.lang.Object hint)
Component
exists for a hint.
hint
- a string identifying the role to check.
public void release(Component component)
Component
when you are finished with it. This
allows the ComponentSelector
to handle the End-Of-Life Lifecycle
events associated with the Component. Please note, that no Exceptions
should be thrown at this point. This is to allow easy use of the
ComponentSelector system without having to trap Exceptions on a release.
component
- The Component we are releasing.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |