org.apache.xmlbeans
abstract class: XmlCursor.XmlBookmark [javadoc |
source]
java.lang.Object
org.apache.xmlbeans.XmlCursor$XmlBookmark
Direct Known Subclasses:
CDataBookmark, SchemaBookmark
Subclasses of XmlBookmark can be used to annotate an XML document.
This class is abstract to prevent parties from inadvertently
interfering with each others' bookmarks without explicitly
sharing a bookmark class.
| Field Summary |
|---|
| public XmlCursor.XmlMark | _currentMark | The mark is set by the host document; it is capable of
returning an XmlCursor implementation at the location of
the bookmark. |
| public final Reference | _ref | If non-null, the ref is used by the host document
to maintain a reference to the bookmark. If it is a weak
reference, the host document will not prevent the Bookmark
from being garbage collected. |
| Method from org.apache.xmlbeans.XmlCursor$XmlBookmark Detail: |
public final XmlCursor createCursor() {
return _currentMark == null ? null : _currentMark.createCursor();
}
Call the createCursor method to create a new cursor which is
positioned at the same splace as the bookmark. It is much more
efficient to call toBookmark on an existing cursor than it
is to create a new cursor. However, toBookmark may fail if the
bookmark is in a different document than the cursor. It is
under these circumstances where createCursor needs to be called
on the bookmark. Subsequent navigations to bookmark
positions should attempt to reuse the last cursor to
improve performace. |
public Object getKey() {
return this.getClass();
}
The default key for bookmarks is the class which implements
them. This way, multiple parties using bookmarks in the
same instance document will not interfere with eachother.
One can, however, override getKey() to use a key other than
the class. |
public final XmlCursor toBookmark(XmlCursor c) {
return c == null || !c.toBookmark( this ) ? createCursor() : c;
}
Moves the given cursor to this bookmark, and returns it. |