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-2007 Pentaho
008// All Rights Reserved.
009*/
010package mondrian.calc;
011
012import mondrian.olap.Evaluator;
013import mondrian.olap.Level;
014
015/**
016 * Expression which yields a {@link mondrian.olap.Level}.
017 *
018 * <p>When implementing this interface, it is convenient to extend
019 * {@link mondrian.calc.impl.AbstractLevelCalc}, but it is not required.
020 *
021 * @author jhyde
022 * @since Sep 26, 2005
023 */
024public interface LevelCalc extends Calc {
025    /**
026     * Evaluates this expression to yield a level.
027     *
028     * <p>Never returns null.
029     *
030     * @param evaluator Evaluation context
031     * @return a level
032     */
033    Level evaluateLevel(Evaluator evaluator);
034}
035
036// End LevelCalc.java