Hi,
I need to implement my own org.w3c.dom.Element class that later on is used as a node in a org.w3c.dom.Document instance.
My own element class essentially implements the required interface and everything works fine, at least in a
Java standard edition.
Running it on a micro edition (v 8) I do see some unexpected behaviour. I get a class cast exception.
java.lang.ClassCastException
- com/sun/ukit/dom/XParent.appendChild(), bci=21
Looking for the code I found the following on [1]
public Node appendChild(Node newChild)
throws DOMException
{
if (_isRO())
throw new DOMException(DOMException.NO_MODIFICATION_ALLOWED_ERR, "");
XNode nchild = (XNode)newChild;
if (newChild.getNodeType() != DOCUMENT_FRAGMENT_NODE) {
// Append a new child node.
_appendChild(nchild);
_childAdded(nchild);
} else {
// Recursive call to appendChild for each child of
doc fragment
while (nchild.getLength() > 0)
appendChild(nchild.item(0));
}
return nchild;
}
It looks like each newChild node gets casted to XNode. First of all I wonder why and second I would like to know how I can now write my own Node classes. I cannot simply extend XNode given that it seems internal somehow.
Any ideas? Thank you very much for every hint,
-- Daniel
[1]
https://svn.java.net/svn/phoneme~svn/components/jsr280/branches/jsr280-cr-6781500/src/share/oi/com/sun/ukit/dom/XParent.java