public class SimpleBeanRegistry extends Object implements BeanRegistry
This class is thread safe. Beans may be registered and retrieved by different threads.
Modifier and Type | Field and Description |
---|---|
static String |
RESERVED_CHARACTERS |
Constructor and Description |
---|
SimpleBeanRegistry()
Constructor for a local registry.
|
SimpleBeanRegistry(PropertyAccessor propertyAccessor,
ArooaConverter converter) |
Modifier and Type | Method and Description |
---|---|
<T> Iterable<T> |
getAllByType(Class<T> type)
Get all objects in the directory of the required type.
|
String |
getIdFor(Object component)
Find the id for the given component.
|
Object |
lookup(String path)
Get the value which is either a bean or the property of a
bean.
|
<T> T |
lookup(String path,
Class<T> required)
Get a value, as above, but also convert it into to given
type.
|
void |
register(String id,
Object component)
Register an object.
|
void |
remove(Object component)
Remove a component from the registry if it exists.
|
String |
toString() |
public static final String RESERVED_CHARACTERS
public SimpleBeanRegistry()
public SimpleBeanRegistry(PropertyAccessor propertyAccessor, ArooaConverter converter)
public <T> Iterable<T> getAllByType(Class<T> type)
BeanDirectory
Why an Iterable not a Collection or Set? It was thought that this would force read only use. Maybe it should be an array...
getAllByType
in interface BeanDirectory
T
- The required type.type
- The type.public void register(String id, Object component) throws InvalidIdException
register
in interface BeanRegistry
id
- The id of the object.object
- The object.InvalidIdException
public Object lookup(String path) throws ArooaPropertyException
BeanDirectory
The path can be either:
lookup
in interface BeanDirectory
ArooaPropertyException
- If property access fails.public <T> T lookup(String path, Class<T> required) throws ArooaPropertyException, ArooaConversionException
BeanDirectory
Conversion in the directory is required when the client code has no access to the converters required, for instance in a nested Oddjob.
lookup
in interface BeanDirectory
T
- The required type.path
- The full pathrequired
- The required type.ArooaPropertyException
- If property access fails.ArooaConversionException
- If an object can be found but
it can't be converted into the required type.public String getIdFor(Object component)
getIdFor
in interface BeanDirectory
component
- The component.public void remove(Object component)
remove
in interface BeanRegistry
component
- The compnent.