1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * Copyright (c) 2004 World Wide Web Consortium, 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 4320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * (Massachusetts Institute of Technology, European Research Consortium for 5320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * Informatics and Mathematics, Keio University). All Rights Reserved. This 6320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * work is distributed under the W3C(r) Software License [1] in the hope that 7320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * it will be useful, but WITHOUT ANY WARRANTY; without even the implied 8320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 10320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage org.w3c.dom; 14320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson 15320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson/** 16f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * When associating an object to a key on a node using 17f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * <code>Node.setUserData()</code> the application can provide a handler 18f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * that gets called when the node the object is associated to is being 19f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * cloned, imported, or renamed. This can be used by the application to 20f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * implement various behaviors regarding the data it associates to the DOM 21f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * nodes. This interface defines that handler. 22320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>. 23320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson * @since DOM Level 3 24320c9890e8241fb0ad05de6fa5e6c3eb3aece159Jesse Wilson */ 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic interface UserDataHandler { 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // OperationType 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The node is cloned, using <code>Node.cloneNode()</code>. 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final short NODE_CLONED = 1; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The node is imported, using <code>Document.importNode()</code>. 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final short NODE_IMPORTED = 2; 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The node is deleted. 37f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * <p ><b>Note:</b> This may not be supported or may not be reliable in 38f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * certain environments, such as Java, where the implementation has no 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * real control over when objects are actually deleted. 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final short NODE_DELETED = 3; 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The node is renamed, using <code>Document.renameNode()</code>. 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final short NODE_RENAMED = 4; 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The node is adopted, using <code>Document.adoptNode()</code>. 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public static final short NODE_ADOPTED = 5; 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 52f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * This method is called whenever the node for which this handler is 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * registered is imported or cloned. 54f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * <br> DOM applications must not raise exceptions in a 55f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * <code>UserDataHandler</code>. The effect of throwing exceptions from 56f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * the handler is DOM implementation dependent. 57f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @param operation Specifies the type of operation that is being 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * performed on the node. 59f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @param key Specifies the key for which this handler is being called. 60f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @param data Specifies the data for which this handler is being called. 61f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @param src Specifies the node being cloned, adopted, imported, or 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * renamed. This is <code>null</code> when the node is being deleted. 63f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes * @param dst Specifies the node newly created if any, or 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * <code>null</code>. 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 66f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes public void handle(short operation, 67f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes String key, 68f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes Object data, 69f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes Node src, 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Node dst); 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 73