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.Member;
014
015/**
016 * Expression which yields a {@link Member}.
017 *
018 * <p>When implementing this interface, it is convenient to extend
019 * {@link mondrian.calc.impl.AbstractMemberCalc}, but it is not required.
020
021 * @author jhyde
022 * @since Sep 26, 2005
023 */
024public interface MemberCalc extends Calc {
025    /**
026     * Evaluates this expression to yield a member.
027     *
028     * <p>May return the null member (see
029     * {@link mondrian.olap.Hierarchy#getNullMember()}) but never null.
030     *
031     * @param evaluator Evaluation context
032     * @return a member
033     */
034    Member evaluateMember(Evaluator evaluator);
035}
036
037// End MemberCalc.java