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) 2001-2005 Julian Hyde
008// Copyright (C) 2005-2007 Pentaho and others
009// All Rights Reserved.
010//
011// jhyde, 10 August, 2001
012*/
013package mondrian.rolap;
014
015import 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 */
027public interface RolapStoredMeasure extends RolapMeasure {
028    /**
029     * Returns the cube this measure belongs to.
030     */
031    RolapCube getCube();
032
033    /**
034     * Returns the column which holds the value of the measure.
035     */
036    MondrianDef.Expression getMondrianDefExpression();
037
038    /**
039     * Returns the aggregation function which rolls up this measure: "SUM",
040     * "COUNT", etc.
041     */
042    RolapAggregator getAggregator();
043
044    /**
045     * Returns the {@link mondrian.rolap.RolapStar.Measure} from which this
046     * member is computed. Untyped, because another implementation might store
047     * it somewhere else.
048     */
049    Object getStarMeasure();
050}
051
052// End RolapStoredMeasure.java