001    /*
002    // $Id: //open/mondrian/src/main/mondrian/rolap/RolapStoredMeasure.java#17 $
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) 2001-2002 Kana Software, Inc.
007    // Copyright (C) 2001-2007 Julian Hyde and others
008    // All Rights Reserved.
009    // You must accept the terms of that agreement to use this software.
010    //
011    // jhyde, 10 August, 2001
012    */
013    
014    package mondrian.rolap;
015    import mondrian.olap.MondrianDef;
016    
017    /**
018     * A measure which is implemented by a SQL column or SQL expression (as opposed
019     * to a {@link RolapCalculatedMember}.
020     *
021     * <p>Implemented by {@link RolapBaseCubeMeasure} and
022     * {@link RolapVirtualCubeMeasure}.
023     *
024     * @author jhyde
025     * @since 10 August, 2001
026     * @version $Id: //open/mondrian/src/main/mondrian/rolap/RolapStoredMeasure.java#17 $
027     */
028    public interface RolapStoredMeasure extends RolapMeasure {
029        /**
030         * Returns the cube this measure belongs to.
031         */
032        RolapCube getCube();
033    
034        /**
035         * Returns the column which holds the value of the measure.
036         */
037        MondrianDef.Expression getMondrianDefExpression();
038    
039        /**
040         * Returns the aggregation function which rolls up this measure: "SUM",
041         * "COUNT", etc.
042         */
043        RolapAggregator getAggregator();
044    
045        /**
046         * Returns the {@link mondrian.rolap.RolapStar.Measure} from which this
047         * member is computed. Untyped, because another implementation might store
048         * it somewhere else.
049         */
050        Object getStarMeasure();
051    }
052    
053    // End RolapStoredMeasure.java