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