Interface Resolver
-
- All Known Implementing Classes:
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, theresolve(java.lang.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(java.lang.String, org.exolab.castor.xml.schema.Referable)
andremoveResolvable(java.lang.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.- Author:
- Assaf Arkin
- See Also:
ResolvableReference
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addResolvable(java.lang.String id, Referable referent)
Adds a resolvable object to this resolver identified by id.void
removeResolvable(java.lang.String id)
Removes a resolvable object from this resolver.Referable
resolve(java.lang.String id)
Called to resolve a reference give the reference's identifier.
-
-
-
Method Detail
-
resolve
Referable resolve(java.lang.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.- Parameters:
id
- The identifier to resolve- Returns:
- The resolved object
-
addResolvable
void addResolvable(java.lang.String id, Referable referent)
Adds a resolvable object to this resolver identified by id. Subsequent calls toresolve(java.lang.String)
with the same id will return referent.- Parameters:
id
- The referent's identifierreferent
- The referent object
-
removeResolvable
void removeResolvable(java.lang.String id)
Removes a resolvable object from this resolver. Subsequent calls toresolve(java.lang.String)
with the same id will return null.- Parameters:
id
- The referent's identifier
-
-