/OpenJDK 8 Web

Interface UserDataHandler

public interface UserDataHandler

When associating an object to a key on a node using Node.setUserData() the application can provide a handler that gets called when the node the object is associated to is being cloned, imported, or renamed. This can be used by the application to implement various behaviors regarding the data it associates to the DOM nodes. This interface defines that handler.

See also the Document Object Model (DOM) Level 3 Core Specification.

DOM Level 3



static final short NODE_CLONED

The node is cloned, using Node.cloneNode().


static final short NODE_IMPORTED

The node is imported, using Document.importNode().


static final short NODE_DELETED

The node is deleted.

Note: This may not be supported or may not be reliable in certain environments, such as Java, where the implementation has no real control over when objects are actually deleted.


static final short NODE_RENAMED

The node is renamed, using Document.renameNode().


static final short NODE_ADOPTED

The node is adopted, using Document.adoptNode().



void handle(short operation,
            String key,
            Object data,
            Node src,
            Node dst)

This method is called whenever the node for which this handler is registered is imported or cloned.
DOM applications must not raise exceptions in a UserDataHandler. The effect of throwing exceptions from the handler is DOM implementation dependent.

operation - Specifies the type of operation that is being performed on the node.
key - Specifies the key for which this handler is being called.
data - Specifies the data for which this handler is being called.
src - Specifies the node being cloned, adopted, imported, or renamed. This is null when the node is being deleted.
dst - Specifies the node newly created if any, or null.

© 1993–2017, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.