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) 1999-2005 Julian Hyde 008// Copyright (C) 2005-2009 Pentaho and others 009// All Rights Reserved. 010*/ 011package mondrian.olap; 012 013/** 014 * A <code>Dimension</code> represents a dimension of a cube. 015 * 016 * @author jhyde, 1 March, 1999 017 */ 018public interface Dimension extends OlapElement, Annotated { 019 final String MEASURES_UNIQUE_NAME = "[Measures]"; 020 final String MEASURES_NAME = "Measures"; 021 022 /** 023 * Returns an array of the hierarchies which belong to this dimension. 024 */ 025 Hierarchy[] getHierarchies(); 026 027 /** 028 * Returns whether this is the <code>[Measures]</code> dimension. 029 */ 030 boolean isMeasures(); 031 032 /** 033 * Returns the type of this dimension 034 * ({@link DimensionType#StandardDimension} or 035 * {@link DimensionType#TimeDimension} 036 */ 037 DimensionType getDimensionType(); 038 039 /** 040 * Returns the schema this dimension belongs to. 041 */ 042 Schema getSchema(); 043 044 /** 045 * Returns whether the dimension should be considered as a "high 046 * cardinality" or "low cardinality" according to cube definition. 047 * 048 * Mondrian tends to evaluate high cardinality dimensions using 049 * iterators rather than lists, avoiding instantiating the dimension in 050 * memory. 051 * 052 * @return whether this dimension is high-cardinality 053 */ 054 boolean isHighCardinality(); 055} 056 057// End Dimension.java