001    /*
002    // $Id: //open/mondrian/src/main/mondrian/calc/MemberCalc.java#5 $
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-2007 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 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     * @version $Id: //open/mondrian/src/main/mondrian/calc/MemberCalc.java#5 $
023     * @since Sep 26, 2005
024     */
025    public interface MemberCalc extends Calc {
026        /**
027         * Evaluates this expression to yield a member.
028         *
029         * <p>May return the null member (see
030         * {@link mondrian.olap.Hierarchy#getNullMember()}) but never null.
031         *
032         * @param evaluator Evaluation context
033         * @return a member
034         */
035        Member evaluateMember(Evaluator evaluator);
036    }
037    
038    // End MemberCalc.java