1 /*-- 2 3 $Id: ElementListener.java,v 1.2 2004/02/06 09:57:48 jhunter Exp $ 4 5 Copyright (C) 2001-2004 Jason Hunter & Brett McLaughlin. 6 All rights reserved. 7 8 Redistribution and use in source and binary forms, with or without 9 modification, are permitted provided that the following conditions 10 are met: 11 12 1. Redistributions of source code must retain the above copyright 13 notice, this list of conditions, and the following disclaimer. 14 15 2. Redistributions in binary form must reproduce the above copyright 16 notice, this list of conditions, and the disclaimer that follows 17 these conditions in the documentation and/or other materials 18 provided with the distribution. 19 20 3. The name "JDOM" must not be used to endorse or promote products 21 derived from this software without prior written permission. For 22 written permission, please contact <request_AT_jdom_DOT_org>. 23 24 4. Products derived from this software may not be called "JDOM", nor 25 may "JDOM" appear in their name, without prior written permission 26 from the JDOM Project Management <request_AT_jdom_DOT_org>. 27 28 In addition, we request (but do not require) that you include in the 29 end-user documentation provided with the redistribution and/or in the 30 software itself an acknowledgement equivalent to the following: 31 "This product includes software developed by the 32 JDOM Project (http://www.jdom.org/)." 33 Alternatively, the acknowledgment may be graphical using the logos 34 available at http://www.jdom.org/images/logos. 35 36 THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 37 WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 38 OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 39 DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT 40 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 41 SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 42 LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 43 USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 44 ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 45 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 46 OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 47 SUCH DAMAGE. 48 49 This software consists of voluntary contributions made by many 50 individuals on behalf of the JDOM Project and was originally 51 created by Jason Hunter <jhunter_AT_jdom_DOT_org> and 52 Brett McLaughlin <brett_AT_jdom_DOT_org>. For more information 53 on the JDOM Project, please see <http://www.jdom.org/>. 54 55 */ 56 57 package org.jdom.contrib.input.scanner; 58 59 import org.jdom.Element; 60 import org.jdom.JDOMException; 61 62 /** 63 * The interface objects listening for element creation notification 64 * fired by {@link ElementScanner} shall implement. 65 * 66 * @author Laurent Bihanic 67 */ 68 public interface ElementListener { 69 70 /** 71 * Notifies of the parsing of an Element. 72 * <p> 73 * <code>ElementScanner</code> invokes this method when 74 * encountering the closing tag of the element definition. Thus, 75 * element <code>e</code> and all its child nodes are fully built 76 * but the parent element is not.</p> 77 * <p> 78 * Note that the element is not attached to any 79 * {@link Element#getDocument document} and that the 80 * {@link Element#getParent() parent element} is <code>null</code> 81 * unless another listener is listening on one of the element 82 * ancestors.</p> 83 * <p> 84 * As no copy of the notified elements is performed, all changes 85 * made on element <code>e</code> will be visible of the 86 * not-yet-notified listeners listening on this same element and 87 * of the listeners listening on one of the element ancestors.</p> 88 * 89 * @param path the path to the parsed element. 90 * @param e the parsed <code>Element</code>. 91 * 92 * @throws JDOMException if the listener wishes to abort the 93 * parsing of the input XML document. 94 */ 95 abstract public void elementMatched(String path, Element e) 96 throws JDOMException; 97 } 98 99