001 /* 002 // $Id: //open/mondrian/src/main/mondrian/calc/IterCalc.java#3 $ 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 mondrian.olap.Evaluator; 013 import mondrian.olap.Member; 014 015 /** 016 * Expression which evaluates a set of members or tuples to an Iterable. 017 * 018 * @author Richard Emberson 019 * @version $Id: //open/mondrian/src/main/mondrian/calc/IterCalc.java#3 $ 020 * @since Jan 11, 2007 021 */ 022 public interface IterCalc extends Calc { 023 /** 024 * Evaluates an expression to yield an Iterable of members or tuples. 025 * 026 * <p>The Iterable is immutable. 027 * 028 * @param evaluator Evaluation context 029 * @return An Iterable of members or tuples, never null. 030 */ 031 Iterable evaluateIterable(Evaluator evaluator); 032 Iterable<Member> evaluateMemberIterable(Evaluator evaluator); 033 Iterable<Member[]> evaluateTupleIterable(Evaluator evaluator); 034 035 } 036 037 // End IterCalc.java