protected class BridgeNdx.BridgeNdxHdxFacade extends AbstractHdxFacade
| Modifier | Constructor and Description | 
|---|---|
protected  | 
BridgeNdxHdxFacade()  | 
| Modifier and Type | Method and Description | 
|---|---|
HdxResourceType | 
getHdxResourceType()
Obtains the  
HdxResourceType which this is a facade for. | 
Object | 
getObject(Element el)
Obtains the object which the given Element is a facade for. 
 | 
Object | 
synchronizeElement(Element el,
                  Object memento)
Adds attributes and children to the given element, to represent
 the current state of the object as a DOM. 
 | 
addChildBefore, clone, getSource, replaceChild, setAttributepublic Object synchronizeElement(Element el, Object memento) throws HdxException
HdxFacadeDocument obtained by invoking
 Node.getOwnerDocument() on the element.  This
 Document will in fact be an instance of 
 HdxDocument, which implements the standard
 Document interface with the addition of HdxDocument.createElement(HdxFacade), which the implementing
 code is therefore free to use (this is an understatement -- the
 entire point of this interface is to give an implementing class the
 opportunity of using this method).
 The element will have the type
 this.getHdxResourceType().xmlname().
 
This method is called frequently, and the implementing
 object should therefore take care to do no more work than is
 necessary.  To assist in this, the caller will preserve a
 memento on behalf of the implementor.  This memento is
 the object returned by this method, which is re-presented when
 the synchronizeElement method is next called (this
 is an example of `memento' pattern, although that is more
 commonly associated with undo actions than the cache-like
 operation described here).  If the implementing object needs to
 preserve some state, to remind it of its own state when it last
 synchronised the element, then it should wrap that state in
 some object or other and return it from this method.  This
 might be as simple as a hash-code.
 
The first time this method is called, the memento will be null.
The returned memento may be null if, for example, the implementor can extract all its relevant state information from the DOM it receives in the Element; or if the object is immutable, so that the Element attributes and children are correct if they are there at all. This null memento will be duly returned to the implementor on any future invocation. In such a case, the implementor might need to be careful to distinguish this returned null memento from the null memento provided when the method is called the first time.
It is perfectly feasible for the implementor to return itself as the memento.
synchronizeElement in interface HdxFacadesynchronizeElement in class AbstractHdxFacadeel - an element which is to be made consistent with the
 current state of the objectmemento - either null, if this is the first time this
 method has been called, or the object which was returned by
 this method last time it was called (which may be null if that
 is what the method chose to return)HdxException - if it is for some reason impossible to
 update the DOM.  The method should regard this as something
 akin to a `can't happen' error: this thrown exception will
 be converted to a DOMException if that is
 reasonable for the caller, but if not, may be converted to a
 PluginException.public Object getObject(Element el) throws HdxException
HdxFacadeThe returned element must match the class appropriate for
 the Hdx type this element corresponds to.  That is the return
 value obj must be such that the following are true
 
HdxResourceType.match(el).getConstructedClass().isInstance(obj)
 HdxResourceType.match(el) == facade.getHdxResourceType()
 facade of this interface,  and if
 el is the Element which this facade is linked to.getObject in interface HdxFacadegetObject in class AbstractHdxFacadeel - an Element which is to be transformed into an objectHdxException - if the facade does not know how to recover
 the object type it has been asked for.  This will also happen
 if the element el does not correspond to a known
 HdxResourceType.public HdxResourceType getHdxResourceType()
HdxFacadeHdxResourceType which this is a facade for.
 This is not (just) a convenience method.  Although the same
 information is retrievable by calling HdxFacade.getSource(java.net.URI), and
 calling HdxResourceType.match(Element) on the top
 element obtained from it, 
 
getSource may involve significant
 processing, and
 Source, since the root of the resulting document
 (matched by the XPath /) is not guaranteed to be
 the `top' node of the DOM (see DOMSource.DOMSource(Node)) 
 getHdxResourceType in interface HdxFacadegetHdxResourceType in class AbstractHdxFacadeHdxResourceType this facade representsCopyright © 2025 Central Laboratory of the Research Councils. All Rights Reserved.