net.sf.tlc.core
Interface ServiceLocator

All Known Implementing Classes:
DefaultServiceLocator

public interface ServiceLocator

A generic ServiceLocator interface. Services can be registered and looked up by name or class (interface).

Author:
aisrael

Method Summary
 java.lang.Object findService(java.lang.Class c)
          Attempt to find and retrive a service by class or interface.
 java.lang.Object findService(java.lang.String name)
          Attempt to find and retrieve a service by name.
 java.util.Set keySet()
           
 void register(java.lang.Class c, java.lang.Object o)
          Register a service as a provider of the given class / interface.
 void register(java.lang.Object o)
          Register an object as a service, using the object's class name as the service name.
 void register(java.lang.String name, java.lang.Object o)
          Register a service (object) by unique name.
 void unregister(java.lang.Object o)
          Remove a service object.
 void unregister(java.lang.String name)
          Remove a named service.
 

Method Detail

register

public void register(java.lang.String name,
                     java.lang.Object o)
Register a service (object) by unique name. Any object previously bound to the given name will be overwritten.

Parameters:
name - a name to uniquely identify this 'service'
o - Object

register

public void register(java.lang.Class c,
                     java.lang.Object o)
Register a service as a provider of the given class / interface. Implementations are encouraged to check that the given object implements or extends the given class. Calls register(c.getName(), o)

Parameters:
c - Class
o - Object

register

public void register(java.lang.Object o)
Register an object as a service, using the object's class name as the service name. Calls register(o.getClass().getName(), o)

Parameters:
o - Object

unregister

public void unregister(java.lang.String name)
Remove a named service.

Parameters:
name - service name

unregister

public void unregister(java.lang.Object o)
Remove a service object. First checks if a service named with the object's class name exists in the registry, and that the service maps to the given object. Throws an IllegalArgumentException otherwise.

Parameters:
o - Object

findService

public java.lang.Object findService(java.lang.String name)
Attempt to find and retrieve a service by name.

Parameters:
name - String
Returns:
the named service if found, or null

findService

public java.lang.Object findService(java.lang.Class c)
Attempt to find and retrive a service by class or interface. First attempts to find a named service by calling findService(c.getName()). If that fails, then implementations may attempt to return a suitable object that extends the superclass or interface.

Parameters:
c - Class
Returns:
a named service, a suitable class, or null

keySet

public java.util.Set keySet()
Returns:
the Set of service names registered with the ServiceLocator


Copyright © 2005 TheLittleContainer. All Rights Reserved.