001    /*
002    // $Id: QueryNodeListener.java 482 2012-01-05 23:27:27Z jhyde $
003    //
004    // Licensed to Julian Hyde under one or more contributor license
005    // agreements. See the NOTICE file distributed with this work for
006    // additional information regarding copyright ownership.
007    //
008    // Julian Hyde licenses this file to you under the Apache License,
009    // Version 2.0 (the "License"); you may not use this file except in
010    // compliance with the License. You may obtain a copy of the License at:
011    //
012    // http://www.apache.org/licenses/LICENSE-2.0
013    //
014    // Unless required by applicable law or agreed to in writing, software
015    // distributed under the License is distributed on an "AS IS" BASIS,
016    // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
017    // See the License for the specific language governing permissions and
018    // limitations under the License.
019    */
020    package org.olap4j.query;
021    
022    /**
023     * Objects that want to be notified of changes to the Query Model structure
024     * have to implement this interface.
025     *
026     * @author Luc Boudreau
027     * @version $Id: QueryNodeListener.java 482 2012-01-05 23:27:27Z jhyde $
028     */
029    public interface QueryNodeListener {
030        /**
031         * Invoked when one or more children of a QueryNode are removed
032         * from its list.
033         *
034         * @param event Describes in detail the actual event that just happened.
035         */
036        public void childrenRemoved(QueryEvent event);
037    
038        /**
039         * Invoked when one or more children are added to a QueryNode
040         * list of children.
041         *
042         * @param event Describes in detail the actual event that just happened.
043         */
044        public void childrenAdded(QueryEvent event);
045    
046        /**
047         * Invoked when a selection operator has changed. This does not mean
048         * that a Selection object was either added or removed from a Dimension,
049         * it only means that its operator value was modified.
050         *
051         * @param event Describes in detail the actual event that just happened.
052         * @see org.olap4j.query.Selection
053         **/
054        public void selectionChanged(QueryEvent event);
055    }
056    
057    // End QueryNodeListener.java