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*/
020package 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 */
029public 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