org.exolab.castor.xml.schema
Interface Resolver
- ScopableResolver
public interface Resolver
Defines an object resolver but does not specify any implementation.
A lazy resolver would resolve an object given its identifier.
The reference to the object will be created with a
ResolvableReference
object using the resolved and the identifier.
When the object is requested, the
resolve(String)
method will be
called to obtain it.
Some implementation will add and remove resolvable objects, e.g.
a collection of objects that also acts as a resolver. These methods
should implement
addResolvable(String,Referable)
and
removeResolvable(String)
.
Resolvers that do not implement these methods are still considered
valid resolvers. For example, a database based resolver will operate
consistently without implementing add/remove not through the database
interface.
void | addResolvable(String id, Referable referent) - Adds a resolvable object to this resolver identified by id.
|
void | removeResolvable(String id) - Removes a resolvable object from this resolver.
|
Referable | resolve(String id) - Called to resolve a reference give the reference's identifier.
|
addResolvable
public void addResolvable(String id,
Referable referent)
Adds a resolvable object to this resolver identified by
id.
Subsequent calls to
resolve(String)
with the same
id
will return
referent.
id
- The referent's identifierreferent
- The referent object
removeResolvable
public void removeResolvable(String id)
Removes a resolvable object from this resolver. Subsequent calls
to
resolve(String)
with the same
id will return null.
id
- The referent's identifier
resolve
public Referable resolve(String id)
Called to resolve a reference give the reference's identifier.
If the reference is known, this method should return the referenced
object. If the reference is unknown, this method should return
null.
id
- The identifier to resolve
Intalio Inc. (C) 1999-2003. All rights reserved http://www.intalio.com