THIS INTERFACE IS SUBJECT TO CHANGE WITHOUT NOTICE.
This 'interface' can be implemented by applications and specified to
Unmarshaller#setProperty(String, Object) to ovierride the ID/IDREF
processing of the JAXB RI like this:
unmarshaller.setProperty(IDResolver.class.getName(),new MyIDResolverImpl());
This component runs inside the JAXB RI unmarshaller. Therefore, it needs to coordinate with the JAXB RI unmarshaller when it comes to reporting errors. This makes sure that applications see consistent error handling behaviors.
When the startDocument(ValidationEventHandler) method is invoked,
the unmarshaller passes in a ValidationEventHandler that can be used
by this component to report any errors encountered during the ID/IDREF processing.
When an error is detected, the error should be first reported to this
ValidationEventHandler. If the error is fatal or the event handler
decided to abort, the implementation should throw a SAXException.
This signals the unmarshaller to abort the processing.
| Access | Constructor and Description |
|---|---|
| protected |
| Modifier and Type | Method and Description |
|---|---|
| public abstract void | bind(String
The ID value found in the document being unmarshalled.
Always non-null. id, Object The object being unmarshalled which is going to own the ID.
Always non-null. obj)Binds the given object to the specified ID. While a document is being unmarshalled, every time an ID value is found, this method is invoked to remember the association between ID and objects. |
| public void | |
| public abstract Callable | Returns: null if the implementation is sure that the parameter combination will never yield a valid object. Otherwise non-null.The IDREF value found in the document being unmarshalled.
Always non-null. id, Class<T> The expected type to which ID resolves to. JAXB infers this
information from the signature of the fields that has targetType)XmlIDREF.
When a property is a collection, this parameter will be the type
of the individual item in the collection.Obtains the object to be pointed by the IDREF value. |
| public void | startDocument(ValidationEventHandler
Any errors found during the unmarshalling should be reported to this object. eventHandler)Called when the unmarshalling starts. |
| IDResolver | back to summary |
|---|---|
| protected IDResolver() Default constructor. | |
| bind | back to summary |
|---|---|
| public abstract void bind(String id, Object obj) throws SAXException Binds the given object to the specified ID. While a document is being unmarshalled, every time an ID value is found, this method is invoked to remember the association between ID and objects. This association is supposed to be used later to resolve IDREFs. This method is invoked right away as soon as a new ID value is found. | |
| endDocument | back to summary |
|---|---|
| public void endDocument() throws SAXException Called after the unmarshalling completes. This is a good opporunity to reset any internal state of this object, so that it doesn't keep references to other objects unnecessarily. | |
| resolve | back to summary |
|---|---|
| public abstract Callable Obtains the object to be pointed by the IDREF value. While a document is being unmarshalled, every time an IDREF value is found, this method is invoked immediately to obtain the object that the IDREF is pointing to.
This method returns a
When a forward-reference happens, the
A
| |
| startDocument | back to summary |
|---|---|
| public void startDocument(ValidationEventHandler eventHandler) throws SAXException Called when the unmarshalling starts.
Since one
| |