001    /*
002    // $Id: //open/mondrian/src/main/mondrian/calc/ListCalc.java#6 $
003    // This software is subject to the terms of the Common Public License
004    // Agreement, available at the following URL:
005    // http://www.opensource.org/licenses/cpl.html.
006    // Copyright (C) 2006-2008 Julian Hyde
007    // All Rights Reserved.
008    // You must accept the terms of that agreement to use this software.
009    */
010    package mondrian.calc;
011    
012    import java.util.List;
013    
014    import mondrian.olap.Evaluator;
015    
016    /**
017     * Expression which evaluates a set of members or tuples to a list.
018     *
019     * @author jhyde
020     * @version $Id: //open/mondrian/src/main/mondrian/calc/ListCalc.java#6 $
021     * @since Sep 27, 2005
022     */
023    public interface ListCalc extends Calc {
024        /**
025         * Evaluates an expression to yield a list of members or tuples.
026         *
027         * <p>The list is immutable if {@link #getResultStyle()} yields
028         * {@link ResultStyle#MUTABLE_LIST}. Otherwise,
029         * the caller must not modify the list.
030         *
031         * @param evaluator Evaluation context
032         * @return A list of members or tuples, never null.
033         */
034        List evaluateList(Evaluator evaluator);
035    }
036    
037    // End ListCalc.java