public abstract class IdRefMapperBase extends Object implements org.jibx.runtime.IMarshaller, org.jibx.runtime.IUnmarshaller, org.jibx.runtime.IAliasable
Abstract base custom marshaller/unmarshaller for an object reference. This
marshals the reference as an empty element with a single IDREF attribute, and
unmarshals an element with the same structure to create a reference to the
object with that ID value. To use this class you need to create a subclass
with a constructor using the same signature as the one provided (calling the
base class constructor from your subclass constructor) and implement the
abstract getIdValue(java.lang.Object) method in your subclass. You can also override
the provided getAttributeName() method to change the name used for the
IDREF attribute. Note that this class can only be used when the definitions
precede the references in the XML document; if a referenced ID is not defined
the unmarshaller throws an exception.
| Constructor and Description |
|---|
IdRefMapperBase(String uri,
int index,
String name)
Aliased constructor taking a name definition for the element.
|
| Modifier and Type | Method and Description |
|---|---|
protected String |
getAttributeName()
Method which can be overridden to supply a different name for the ID
reference attribute.
|
protected abstract String |
getIdValue(Object item)
Get the ID value from object being marshalled.
|
boolean |
isExtension(String mapname) |
boolean |
isPresent(org.jibx.runtime.IUnmarshallingContext ctx) |
void |
marshal(Object obj,
org.jibx.runtime.IMarshallingContext ictx) |
Object |
unmarshal(Object obj,
org.jibx.runtime.IUnmarshallingContext ictx) |
public IdRefMapperBase(String uri, int index, String name)
uri - namespace URI for the top-level elementindex - namespace index corresponding to the defined URI within the
marshalling context definitionsname - local name for the top-level elementprotected abstract String getIdValue(Object item)
item - to get value fromprotected String getAttributeName()
public boolean isExtension(String mapname)
isExtension in interface org.jibx.runtime.IMarshallerpublic void marshal(Object obj, org.jibx.runtime.IMarshallingContext ictx) throws org.jibx.runtime.JiBXException
marshal in interface org.jibx.runtime.IMarshallerorg.jibx.runtime.JiBXExceptionpublic boolean isPresent(org.jibx.runtime.IUnmarshallingContext ctx)
throws org.jibx.runtime.JiBXException
isPresent in interface org.jibx.runtime.IUnmarshallerorg.jibx.runtime.JiBXExceptionCopyright © 2005–2020 jibx.org. All rights reserved.