001    /*
002    // $Id:$
003    // This software is subject to the terms of the Eclipse Public License v1.0
004    // Agreement, available at the following URL:
005    // http://www.eclipse.org/legal/epl-v10.html.
006    // Copyright (C) 2009-2009 Julian Hyde
007    // All Rights Reserved.
008    // You must accept the terms of that agreement to use this software.
009    */
010    package org.olap4j.query;
011    
012    /**
013     * Objects that want to be notified of changes to the Query Model structure
014     * have to implement this interface.
015     *
016     * @author Luc Boudreau
017     * @version $Id: $
018     */
019    public interface QueryNodeListener {
020        /**
021         * Invoked when one or more children of a QueryNode are removed
022         * from its list.
023         *
024         * @param event Describes in detail the actual event that just happened.
025         */
026        public void childrenRemoved(QueryEvent event);
027    
028        /**
029         * Invoked when one or more children are added to a QueryNode
030         * list of children.
031         *
032         * @param event Describes in detail the actual event that just happened.
033         */
034        public void childrenAdded(QueryEvent event);
035    
036        /**
037         * Invoked when a selection operator has changed. This does not mean
038         * that a Selection object was either added or removed from a Dimension,
039         * it only means that its operator value was modified.
040         *
041         * @param event Describes in detail the actual event that just happened.
042         * @see org.olap4j.query.Selection
043         **/
044        public void selectionChanged(QueryEvent event);
045    }
046    
047    // End QueryNodeListener.java