| org.jicarilla.container.Resolver
All known Subclasses: org.jicarilla.container.DefaultResolver,
Resolver | public interface Resolver (Code) | | A resolver provides basic means to query, retrieve and return object
instances from "something". This "something" is usually an implementation
of the
ResolverProvider interface, such as a
Container ,
but this does not have to be the case.
In Jicarilla, the resolver is the central communication mechanism between
the container and the adapters that it contains. In addition, resolvers are
frequently passed on from adapters to
Factory implementations. They
are internally used by adapters and factories to provide the instances they
manage with their dependencies and possibly with their configuration.
However, the most important use of the resolver is by clients of the
Container . After having filled the container with adapters, a client
application retrieves a resolver from the container, which it then uses to
gain access to the components it needs. Thus, the Resolver
interface is usually your primary interface to the container. This is
especially true if you use the
org.jicarilla.container.builder.DefaultBuilder or another subclass
of
org.jicarilla.container.builder.AbstractBuilder to construct
your container. In that case, you never retrieve a reference to the
actual Container at all!
author: Leo Simons version: $Id: Resolver.java,v 1.3 2004/01/08 14:51:59 lsimons Exp $ |
Method Summary | |
boolean | contains(Object key) Determine whether the resolver believes it can provide an instance
for the specified key. | Object | get(Object key) Retrieve an instance from this resolver. | Object[] | getAll(Object key) Retrieve multiple instances from this resolver. | void | releaseInstance(Object instance) Return the instance to this resolver. |
contains | boolean contains(Object key)(Code) | | Determine whether the resolver believes it can provide an instance
for the specified key. Note that if this method is true, that is not an
absolute guarantee that
Resolver.get(Object) or
Resolver.getAll(Object) will not throw an exception, as other errors may occur as well. However,
those other errors are much rarer.
Also note that this method could potentially return false at one
point and then true a brief moment later (or the other way around), and
that
ResolutionException s can still be thrown from
get() and/or getAll() even if it does return
true. However, such an event will be extremely rare.
Parameters: key - the criterion you wish to use as an argument toget() or getAll() true if the resolver believes it can provide an instance forthe specified key, false otherwise |
get | Object get(Object key) throws ResolutionException, JicarillaIllegalAccessException, JicarillaInvocationTargetException, JicarillaInstantiationException, JicarillaClassNotFoundException, InitializationException, JicarillaException(Code) | | Retrieve an instance from this resolver. You should normally return this
instance through
Resolver.releaseInstance(Object) at some point before
your program exits. For some instances, this may not be neccessary. For
example, if this resolver was retrieved from a
Container and the
container in turn got the instance from an
Adapter which does
not require instances to be released, you do not need to call
releaseInstance() . When in doubt, it is best to always call
releaseInstance() .
Parameters: key - the criterion that the resolver should use to determinewhat instance to return. an instance associated with the specified key. The providedreference shall never be null . throws: ResolutionException - if no instance can be found for theprovided key. To avoid this exception, use theResolver.contains(Object) method to verify that the resolverbelieves to be able to provide an instance for a key. throws: JicarillaIllegalAccessException - if the implementationhas a problem accessing some external resource and is thusunable to return an instance. throws: JicarillaInvocationTargetException - if the implementationhas a problem invoking some external resource and is thusunable to return an instance. throws: JicarillaInstantiationException - if the implementationhas a problem creating the instance to return. throws: JicarillaClassNotFoundException - if the implementationtries to load a class to create an instance of, but the classcannot be loaded. throws: InitializationException - if a miscellaneous problem occurstrying to create the instance to return. throws: JicarillaException - if a miscellaneous exception occurs (aninternal adapter error or an assertion failure, for example). |
getAll | Object[] getAll(Object key) throws JicarillaIllegalAccessException, JicarillaInvocationTargetException, JicarillaInstantiationException, JicarillaClassNotFoundException, InitializationException, JicarillaException(Code) | | Retrieve multiple instances from this resolver. You should normally
return these instances through
Resolver.releaseInstance(Object) at some
point before your program exits. For some instances, this may not be
neccessary. For example, if this resolver was retrieved from a
Container and the container in turn got these instances from
Adapter adapters which do not require instances to be released,
you do not need to call releaseInstance() . When in doubt,
it is best to always call releaseInstance() .
Parameters: key - the criterion that the resolver should use to determinewhat instances to return. all instances associated with the provided key. The providedreferences shall never be null , though the lengthof the returned array could be zero. throws: JicarillaIllegalAccessException - if the implementationhas a problem accessing some external resource and is thusunable to return an instance. throws: JicarillaInvocationTargetException - if the implementationhas a problem invoking some external resource and is thusunable to return an instance. throws: JicarillaInstantiationException - if the implementationhas a problem creating the instance to return. throws: JicarillaClassNotFoundException - if the implementationtries to load a class to create an instance of, but the classcannot be loaded. throws: InitializationException - if a miscellaneous problem occurstrying to create the instance to return. throws: JicarillaException - if a miscellaneous exception occurs (aninternal adapter error or an assertion failure, for example). |
releaseInstance | void releaseInstance(Object instance) throws Exception(Code) | | Return the instance to this resolver. You should normally return
all instances you retrieve from this adapter, but see the
Resolver.get(Object) note in the documentation for the
get() method for more information.
Parameters: instance - the instance to release. throws: Exception - if any kind of problem occurs releasing the instance.It is often considered safe to recover from this exception andcontinue normal application flow, but these exceptions shouldnever be discarded lightly. |
|
|